子類物件的建立過程

2021-09-19 10:16:59 字數 588 閱讀 7882

2019.4.21 第一次寫部落格。

簡單說一說子類建立物件的時候,子類和其父類的建立過程。

如下所示:

class a

public a(){}

}class b extends a

public b(){}

}一:第一次使用類a,類b時

//執行順序

new b();

1.載入父類,為父類的靜態變數分配記憶體。

2.載入子類,為子類的靜態變數分配記憶體。

3.執行父類靜態變數的賦值運算和父類的靜態初始化塊。

4.執行子類靜態變數的賦值運算和子類的靜態初始化塊。

//靜態變數和靜態初始化塊的執行順序是按**中靜態變數和初始化塊的先後順序來執行

5.建立父類物件,為父類非靜態變數分配記憶體。

6.建立子類物件,為子類非靜態變數分配記憶體。

7.執行父類非靜態變數的賦值運算。

8.執行父類的構造方法。

9.執行子類非靜態變數的賦值運算。

10.執行子類的構造方法。

二:不是第一次使用類a,類b時

不執行子類和父類靜態變數和靜態初始化塊,只執行之後的過程。

子類建立物件

因為子類是繼承自父類,所以在為子類建立物件之前,其會先後的為父類的靜態全域性變數 子類的靜態全域性變數進行初始化,之後再先後為父類的例項全域性變數 子類的例項全域性變數進行初始化。1.子類要為父類的私有屬性單獨的在堆裡開闢空間,這個空間不屬於任何乙個物件,原因是私有屬性要使用必須要有個空間,並預設初...

子類物件的例項化過程

源 class person public person string name,int age class student extends person public student string name,int age public student string name,int age,st...

子類物件例項化過程的理解

提到子類物件的例項化,就得先對this 與super做乙個回顧 1.this關鍵字 1.可以呼叫的結構 屬性 方法 構造器 2.this呼叫屬性 方法 this理解為 當前物件 或 當前正在建立的物件 1 在類的方法中,我們可以使用 this.屬性 或 this.方法 的方式,呼叫 當前物件屬性或方...