子類繼承和呼叫父類的構造 析構函式方法

2021-06-09 02:04:44 字數 978 閱讀 4854

先呼叫基類的建構函式,再呼叫派生類的建構函式就像蓋樓的時候先從地基開始,然後第一層,第二層。。。如果是析構(析構函式需要是是虛函式),那麼先呼叫派生類的析構函式,再呼叫基類的析構函式就像拆樓的時候想從最高層開始拆,然後往下一直到第一層

子類繼承和呼叫父類的構造方法

1.如果子類沒有定義構造方法,則呼叫父類的無引數的構造方法,.

2.如果子類定義了構造方法,不論是無引數還是帶引數,在建立子類的物件的時候,首先執行父類無引數的構造方法,然後執行自己的構造方法。

3.如果子類呼叫父類帶引數的構造方法,可以通過super(引數)呼叫所需要的父類的構造方法,切該語句做為子類構造方法中的第一條語句。

4.如果某個構造方法呼叫類中的其他的構造方法,則可以用this(引數),切該語句放在構造方法的第一條.

說白了:原則就是,先呼叫父親的.(沒有就預設調,有了就按有的調,反正只要有乙個就可以了.)

package test;

class father

public father(string str)

}class son extends father

public son(string str)

public son(string str1, string str2)

}public class myclass9

}***************

結果:run constructor method of father

hello father

run constructor method of father

run constructor method of son

run constructor method of father

run constructor method of son

hello son

hello son hello father

hello son

C 子類構造和析構被時,父類構造和析構的呼叫順序

構造方法用來初始化類的物件,與父類的其它成員不同,它不能被子類繼承 子類可以繼承父類所有的成員變數和成員方法,但不繼承父類的構造方法 因此,在建立子類物件時,為了初始化從父類繼承來的資料成員,系統需要呼叫其父類的構造方法。如果沒有顯式的建構函式,編譯器會給乙個預設的建構函式,並且該預設的建構函式僅僅...

C 子類呼叫父類構造和析構函式的順序

include using namespace std class a class b public a int main 列印的結果是 construct a a construct b b destruct a a 一般情況下構造函式呼叫父類 子類 析構函式呼叫子類 父類 比如這麼寫 b a n...

子類繼承和呼叫父類的構造方法

1.如果子類沒有定義構造方法,則呼叫父類的無引數的構造方法,2.如果子類定義了構造方法,不論是無引數還是帶引數,在建立子類的物件的時候,首先執行父類無引數的構造方法,然後執行自己的構造方法。3.如果子類呼叫父類帶引數的構造方法,可以通過super 引數 呼叫所需要的父類的構造方法,切該語句做為子類構...