Java中new DerivedClass()時背後發生的事情
(原創 – 邵正軍, 2005-4-5)
class DerivedClass extends BaseClass {…}
new DerivedClass();
1 裝載class
1.1 載入BaseClass , 產生了此處說明的序列步驟(即: [裝載class])的遞歸.
1.2 載入DerivedClass
1.2.1 為類作用域變量分配存儲空間,並賦默認值
1.2.2 調用
2 為實例作用域變量分配存儲空間,並賦默認值.
3 調用構造函數***注意: Java規定:構造函數的第一個條語句必須是對super構造函數的調用,如果代碼中不是這樣,會由編譯器自動為其偷偷加上.
3.1 調用super構造函數, 產生了此處說明的序列步驟(即: [調用構造函數])的遞歸.
3.2 調用
3.3 執行構造函數中的剩余部分.