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

Java 繼承機制深度解析:從語法到實戰最佳實踐

     編輯:Java 相關知識

什麼是繼承?

繼承是物件導向三大特性之一,讓子類別自動擁有父類別的屬性與方法,並可擴充或覆寫行為。父類別提供通用邏輯,子類別專注差異化實作,實現程式碼複用與多態基礎。

基本語法與範例

class Car {
    int size;
    String color;
}

class Truck extends Car {
    String packingBox; // 貨車特有屬性
}

子類別透過 extends 關鍵字繼承父類別,Truck 實例即擁有 size、color 且可新增 packingBox。

繼承的兩大核心優勢

  1. 程式碼複用:避免重複定義共同屬性/方法。
  2. 建立型別關係:為多態鋪路,父類別參考可指向子類別物件。

super 關鍵字:存取父類別成員

當子父類別出現同名成員時,super 用於明確呼叫父類別版本:

class SuperClass { int i = 10; }
class SubClass extends SuperClass {
    int i = 20;
    void show() {
        System.out.printf("super.i=%d, this.i=%d%n", super.i, this.i);
    }
}
// 輸出:super.i=10, this.i=20

方法覆寫 三大鐵律

規則說明違反後果
簽名必須相同回傳型別、方法名、參數列表一致編譯錯誤:return type incompatible
存取權限不得縮小子類別權限 ≥ 父類別編譯錯誤:weaker access privileges
@Override 註解編譯期檢查是否真正覆寫避免拼字錯誤導致誤以為覆寫

覆寫實戰範例

class Animal {
    public void speak() { System.out.println("Animal sound"); }
}

class Cat extends Animal {
    @Override
    public void speak() {
        super.speak(); // 保留父類別行為
        System.out.println("Meow~");
    }
}

存取修飾符速查

public > protected > default > private。
繼承時,子類別可見性:public/protected 可直接存取,default 同套件可見,private 需透過 getter/setter。


善用繼承能大幅降低維護成本,但切記組合優於繼承——當「是一種」關係不成立時,優先考慮組合/介面設計。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved