繼承(三) 子父繼承中建構函式的執行順序

2022-04-22 15:51:09 字數 983 閱讀 5837

/*

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後剩餘的部分)

class

fu

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 分析 多重繼承與單繼承類似,也是先執行基類建構函式。多個基類之間...