package demo2;
class meal
}class bread
}class cheese
}class lettue
}class lunch extends meal
}class portablelunch extends lunch
}public class demo1 extends portablelunch
public static void main(stringargs)
列印結果:
meal()
lunch()
portablelunch()
bread()
cheese()
lettue()
demo1()
分析: 執行,進入demo1類的main方法,需要進行demo1的構造(生成),首先去呼叫基類的構造器,反覆遞迴下去,然後初始化類中的成員,最後呼叫使用者定義的demo1的構造方法.
補充:銷毀順序和構造順序相反,就像資源的開啟順序和關閉順序。
構造器呼叫順序
構造器呼叫順序 1 基類建構函式 2 申明順序的成員初始化方法 3 匯出類構造器。class bread class sandwich class cheese class supermeal extends bread class meal extends supermeal public sta...
構造函式呼叫順序
1 建立派生類的物件,基類的建構函式函式優先被呼叫 也優先於派生類裡的成員類 2 如果類裡面有成員類,成員類的建構函式優先被呼叫,靜態成員優先呼叫 3 基類建構函式如果有多個基類則建構函式的呼叫順序是某類在類派生表中出現的 順序而不是它們在成員初始化表中的順序 4 成員類物件建構函式如果有多個成員類...
C 構造函式呼叫順序
class y class x public y x one 建構函式的呼叫順序是下面的順序 y 基類的建構函式 x 繼承類的建構函式 對於多基類的情況,下面是乙個例子 class x public y,public z x one 建構函式以宣告的次序呼叫。y 基類建構函式首先被呼叫 z x 虛基...