在 Java 繼承體系中,子類的構建過程是從基類向外擴散的:當子類被初始化時,其父類必定已經完成初始化。這篇文章透過程式碼範例,詳細演示了這一機制的執行流程。
class Art {
Art() {
System.out.println("Art");
}
}
class Drawing extends Art {
Drawing() {
System.out.println("Drawing");
}
}
public class Cartoon extends Drawing {
Cartoon() {
System.out.println("Cartoon");
}
public static void main(String[] args) {
Art cartoon = new Cartoon();
}
}
Art
Drawing
Cartoon
從輸出可以清晰地看到,構造方法的調用順序遵循「由父到子」的原則:
Art 的構造方法;Drawing 的構造方法;Cartoon 的構造方法。這是因為 Java 在創建子類對象時,會隱式或顯式調用 super(),確保父類狀態先被正確初始化,才繼續初始化子類特有的狀態。理解這一順序對於避免繼承中因初始化不當導致的邏輯錯誤至關重要。