建構函式的呼叫順序詳解

2021-10-20 20:45:32 字數 532 閱讀 7241

子類會預設呼叫父類的無參構造方法;

子類的有參建構函式中沒有super()方法時,不管子類是有參還是無參呼叫構造方法,都會先預設呼叫父類的無參構造方法;

有super()方法時會取消預設呼叫父類的無參構造方法;

當父類中沒有無參建構函式時,子類必須呼叫父類有參的建構函式,子類預設呼叫父類的構造方法,如果父類中沒有無參的建構函式,就會出現編譯錯誤但是如果呼叫了父類的有參建構函式就沒有錯誤了。

請看下面測試**:

public

class

people

public

people

(string name)

}class

child

extends

people

public

child()

public

static

void

main

(string[

] args)

}

構造函式呼叫順序

1 建立派生類的物件,基類的建構函式函式優先被呼叫 也優先於派生類裡的成員類 2 如果類裡面有成員類,成員類的建構函式優先被呼叫,靜態成員優先呼叫 3 基類建構函式如果有多個基類則建構函式的呼叫順序是某類在類派生表中出現的 順序而不是它們在成員初始化表中的順序 4 成員類物件建構函式如果有多個成員類...

建構函式(構造器)的呼叫順序

package demo2 class meal class bread class cheese class lettue class lunch extends meal class portablelunch extends lunch public class demo1 extends p...

C 構造函式呼叫順序

class y class x public y x one 建構函式的呼叫順序是下面的順序 y 基類的建構函式 x 繼承類的建構函式 對於多基類的情況,下面是乙個例子 class x public y,public z x one 建構函式以宣告的次序呼叫。y 基類建構函式首先被呼叫 z x 虛基...