子類構造器呼叫父類構造器的順序問題

2021-07-30 10:24:43 字數 592 閱讀 8560

一 super呼叫父類構造器

二 構造器呼叫順序示例

1 **示例

class creature

}class animal extends creature

public animal(string name , int age) }

public class wolf extends animal

public static void main(string args)

}

2 執行結果

creature無引數的構造器

animal帶乙個引數的構造器,該動物的name為大灰狼

animal帶兩個引數的構造器,其age為3

wolf無引數的構造器

3 結果分析

從執行結果來看,建立任何物件總是從該類所在繼承樹最頂層的構造器開始執行,然後依次向下執行,最後才執行本類的構造器,如果其個父類通過this呼叫同類中的構造器,就會依次執行父類的多個構造器。

關於為何子類的構造器必須呼叫父類的構造器一次的解答

一 個 空 的 構 造 函 數 看 起 來 雖 然 啥 也 沒 幹 其 實 oop的 編 繹 器 是 從 這 裡 開 始 動 工 建 造 我 們 寫 好 的 類 中 的 信 息 子 類 是 繼 成 父 類 的 子 類 就 會 包 抱 父 類 的 信 息 在 構 造 一 個 子 類 時 父 類 中 的...

子類與父類構造函式呼叫順序

子類的析構函式的呼叫順序,和子類的建構函式的呼叫順序相反!記住,相反即可。include include using namespace std classm m classn n classa a classb public a b private m m1 m m2 static n ms n ...

Swift子類構造方法呼叫父類構造方法

swift 中子類init呼叫父類的init方法必須寫在最後。如下例項 子類chemistry中init構造方法呼叫父類的init方法完成屬性初始化,呼叫的父類init方法super.init physics physics 必須寫在方法最後一句,否則報錯 class subjects func u...