/*1,zi類進堆後,先初始化num為0,
2,緊接著執行super語句,跳轉到父類建構函式處
3,父類建構函式中有show()函式,但是它會先在子類中尋找此函式,發現子類中有這個函式,則執行子類中的show()函式。此時num仍然為0
4,接著super語句完成,繼續回到子類建構函式中執行接下來的語句。num初始化為9,並執行下面的輸出語句*/1
classfu2
78void
show()912
13}1415
class zi extends
fu16
2425
void
show()
262930}
3132
/*33
34show...0
35zi show...9
3637
*/
2、構造**塊
/*構造**塊先於建構函式執行
*/ 1
classzi2
8zi()912
13}14/*
15constructor code ...9
16zi constructor ...9
17*/
3、子父類中的構造**塊、建構函式的執行順序
super()(show()函式的呼叫參照上一條)→顯示初始化→構造**塊(如有賦值操作則再次賦值)→建構函式(完成zi類中super後剩餘的部分)
classfu
void
show()
}class
zi
zi()
void
show()
}/*show...0
constructor code ...9
zi constructor ... 10
*/
繼承 父類子類建構函式的執行順序
當乙個類繼承了某個類時,在子類的構造方法裡,super 必須先被呼叫 如果你沒有寫,編譯器會自動呼叫super 方法,即呼叫了父類的構造方法 這並不是建立了兩個物件,其實只有乙個子類sub物件 之所以需要呼叫父類的構造方法是因為在父類中,可能存在私有屬性需要在其構造方法內初始化 package co...
02 Java繼承 子父類中的建構函式
總結如下 子父類中的建構函式的特點 1.在子類構造物件時,發現,訪問子類建構函式時,父類建構函式也執行了。原因是 在子類的建構函式中第一行有乙個預設的隱式語句。super 類似於this this 呼叫的是本類的建構函式 2.子類建構函式預設呼叫的是父類中的空引數建構函式,如果需要呼叫父類中帶引數的...
C 中多重繼承建構函式執行順序
1 1 include 2 include 3 4using namespace std 56 classa11 12 classb17 18 class c public b,publica24 25 intmain 輸出 b ac 分析 多重繼承與單繼承類似,也是先執行基類建構函式。多個基類之間...