首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java 基礎核心知識點速查:繼承、重寫、構造器與多態

     編輯:Java 綜合教學

核心知識點總結

1. 子類構造器默認調用父類無參構造


class Parent {
    public Parent() { System.out.println("Parent()"); }
    public Parent(String msg) { System.out.println("Parent(String): " + msg); }
}
class Child extends Parent {
    public Child() { 
        // 隱式調用 super(),即父類無參構造
        System.out.println("Child()"); 
    }
    public Child(String msg) {
        super(msg); // 顯式調用父類有參構造,必須是第一行
        System.out.println("Child(String): " + msg);
    }
}
// new Child() 輸出:Parent() → Child()
// new Child("Hi") 輸出:Parent(String): Hi → Child(String): Hi

規則:子類構造器首行若無 super(...) 或 this(...),編譯器自動插入 super()。父類無無參構造時,子類必須顯式調用 super(...)。

2. 私有成員與構造方法不可重寫

  • private 方法/字段:子類不可見,無法重寫,定義同名方法屬於新方法,無多態
  • 構造方法:不屬於方法,無法繼承、重寫,只能通過 super() 調用
  • static 方法:屬於類,隱藏而非重寫,靜態綁定
  • final 方法:禁止重寫

3. 重寫返回值類型協變


class Parent {
    public Number getValue() { return 1; }
}
class Child extends Parent {
    // 返回類型可以是父類返回類型的子類(協變返回類型,JDK 5+)
    @Override
    public Integer getValue() { return 2; } // Integer 是 Number 子類,合法
}

規則:重寫方法返回類型必須與父類相同,或為其子類型(協變)。基本類型必須完全一致。

4. 多態實現的兩種形式

類型關鍵字綁定時機實現機制
靜態多態 (重載)Overload編譯期方法簽名不同(參數列表),靜態分派
動態多態 (重寫)Override運行期虛方法表,動態分派

5. 實戰陷阱速查

  • 構造器中調用可重寫方法 → 子類字段未初始化 → NPE/邏輯錯
  • 父類引用指向子類對象,調用重寫方法 → 動態分派到子類實現
  • 父類引用調用重載方法 → 靜態分派,按聲明類型選擇重載版本
  • super.method() 只能調用父類實現,不可鏈式調用祖父類
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved