Java繼承構造執行順序

2021-09-01 15:58:17 字數 1529 閱讀 6698

package test;

public class father

public father()

}

package test;

public class son extends father

public son()

public son(int s)

public static void main(string args)

}

package test;

public class grandchild extends son

public grandchild()

public grandchild(int s)

public grandchild(long s)

public static void main(string args)

}

執行以下**

public static void main(string args)
結果為:

i am father

i am son

i am grandchild

father create

son create

grandchild create

執行以下**

public static void main(string args)
結果為

i am father

i am son

i am grandchild

father create

son create with param: int

grandchild create with param: int

執行以下**

public static void main(string args)
結果為:

i am father

i am son

i am grandchild

father create

son create with param: int

grandchild create with param: int

grandchild create with param: long

以上:

1 類中的靜態物件先於static{}執行

2  static{}中的**是在構建類物件之前執行的

3 構造子類的時候是按照先父後子的順序執行的

4 如果在子的建構函式中並沒有使用顯式的呼叫父類的建構函式(使用super),則執行無參建構函式。

5 如果使用this(),則會先呼叫this(),再呼叫下面的**(此時父類別的預設建構函式不再執行,而會根據執行this()執行相應的父建構函式)

繼承下建構函式的執行順序

這裡先給出結論,在貼出 與執行結果 乙個派生類建構函式的執行順序如下 第一步執行 虛擬基類的建構函式 多個虛擬基類則按照繼承的順序執行建構函式 第二步執行 基類的建構函式 多個普通基類也按照繼承的順序執行建構函式 第三步執行 類型別的成員物件的建構函式 按照初始化順序 第四部執行 派生類自己的建構函...

java繼承的構造函式呼叫順序

1 首先呼叫父類的無參建構函式 這個建構函式必定會被呼叫 2 呼叫子類的無參建構函式或帶引數的建構函式 例 1 宣告抽象類爺爺 father of abstractclass public abstract class father of abstractclass protected father...

C 中多重繼承建構函式執行順序

1 1 include 2 include 3 4using namespace std 56 classa11 12 classb17 18 class c public b,publica24 25 intmain 輸出 b ac 分析 多重繼承與單繼承類似,也是先執行基類建構函式。多個基類之間...