子類建立物件

2021-07-23 05:10:19 字數 479 閱讀 4186

因為子類是繼承自父類,所以在為子類建立物件之前,其會先後的為父類的靜態全域性變數、子類的靜態全域性變數進行初始化,之後再先後為父類的例項全域性變數、子類的例項全域性變數進行初始化。

1.子類要為父類的私有屬性單獨的在堆裡開闢空間,這個空間不屬於任何乙個物件,原因是私有屬性要使用必須要有個空間,並預設初始化,

不會為父類的私有方法在堆裡開闢空間,原因是私有方法在方法區。

2.為子類開闢空間,為繼承自父類的屬性開闢空間,並為在父類裡定義的、子類繼承的方法開闢方法空間,然後為子類新增的方法開闢空間,(繼承的方法的空間和新增的屬性和方法的空間)

3.一定會把

子類的物件位址傳到父類的構造方法,呼叫父類的構造方法

,到類裡頭繫結的屬性尋找並初始化,

為子類繼承的屬性私有化,和為子類不能繼承的屬性私有化。若父類的構造方法是私有的,則子類物件不能建立,編譯會出錯

4.呼叫子類的構造方法可以初始化子類新增的屬性,和繼承父類的屬性和方法初始化。

子類物件的建立過程

2019.4.21 第一次寫部落格。簡單說一說子類建立物件的時候,子類和其父類的建立過程。如下所示 class a public a class b extends a public b 一 第一次使用類a,類b時 執行順序 new b 1.載入父類,為父類的靜態變數分配記憶體。2.載入子類,為子類...

python建立子類 python 建立子類

如果你的類沒有從任何祖先類派生,可以使用object作為父類的名字。經典類的宣告唯一不同之處在於其 沒有從祖先類派生 此時,沒有圓括號 usr bin env python coding utf 8 class classicclasswithoutsuperclasses def fun1 sel...

java建立子類物件是否同時建立父類物件探索

結論 不會 原因 1 準備父類如下 package extend test public class father class 2 準備子類如下 package extend test public class son cladd extends father class public void t...