子類初始化與子類構造器中的super this

2021-09-28 16:50:59 字數 589 閱讀 3739

用此類來記住子類的初始化和super與this的靈活運用!

package basesome;

/** * @author 董

子類的例項化過程

結論:子類的所有的建構函式,預設都會訪問父類中空引數的建構函式。

因為子類每乙個建構函式內的第一行都有一句隱式super();

當父類中沒有空引數的建構函式時,子類必須手動通過super語句形式來指定要訪問父類中的建構函式。

當然:子類的建構函式第一行也可以手動指定this語句來訪問本類中的建構函式。

子類中至少會有乙個建構函式會訪問父類中的建構函式。

為什麼子類一定要訪問父類中的建構函式?

因為父類中的資料子類可以直接獲取。所以子類物件在建立時,需要先檢視父類是如何對這些資料進行初始化的。

所以父類在物件初始化時,要先訪問父類中的建構函式。

*/public

class

extendtestdemo

}classfu}

class

ziextends

fuzi

(int x)

}

初始化列表呼叫子類建構函式

includeusing namespace std class a a是父類 a int x a x 帶 引數的建構函式對a 初始化 void printa class b public a b 是子類 void printb int main 如果在子類的建構函式中需要初始化父類的private...

c 子類建構函式初始化及父類構造初始化

我們知道,構造方法是用來初始化類物件的。如果在類中沒有顯式地宣告建構函式,那麼編譯器會自動建立乙個預設的建構函式 並且這個預設的建構函式僅僅在沒有顯式地宣告建構函式的情況下才會被建立建立。1.父類沒有宣告建構函式 1 子類也沒有宣告自己的建構函式,則父類和子類均由編譯器生成預設的建構函式。2 子類中...

父類,子類初始化 2

載入類時,先父類靜態,再子類靜態,然後是子類中main方法,main方法中如果有生成子類物件的語句,先找到子類建構函式,因為每個子類建構函式裡頭都會有super語句 jdk預設或者自己提供,且預設在建構函式中第一行 則先初始化父類非靜態,然後父類構造,再然後是子類非靜態,子類建構函式 除super之...