java 構建器執行順序

2021-06-08 16:33:39 字數 376 閱讀 4086

類的初始化順序:

1.從最頂層父類開始按照順序分配空間給屬性並賦預設值(和0等值的值),如果是靜態成員則初始化為正確的值(程式設計師賦的預設值)。

2.然後依次到子類分配空間賦預設值。這是所有的屬性都分配了儲存空間和預設值。

3.再從最頂層父類開始按照順序給變數賦正確的值(程式設計師賦的預設值),有靜態**塊的執行靜態**塊。

4.執行最頂層的建構函式。

5.依次到子類去給變數賦正確的值(程式設計師賦的預設值)。

簡單說:

1.給成員分配空間和預設值(靜態成員直接賦程式設計師賦的值)。從最頂層父類開始,貫穿所有父類和當前類。

2.給成員賦正確的值(程式設計師賦的預設值),執行靜態**塊,執行建構函式。從最頂層類開始,貫穿所有父類和當前類。

Java程式執行順序

1 靜態塊 父類靜態塊 子類靜態塊 2 父類塊 父類構造器 3 子類塊 子類構造器 也就是 靜態塊優於其他 塊和構造器,然後是父類中的 塊和者構造器 最後才是子類中的 塊和者構造器。public class mastiff extends dog 方法塊 構造器 public mastiff pub...

java類執行順序

如果父類有靜態成員賦值或者靜態初始化塊,執行靜態成員賦值和靜態初始化塊 如果類有靜態成員賦值或者靜態初始化塊,執行靜態成員賦值和靜態初始化塊 將類的成員賦予初值 原始型別的成員的值為規定值,例如int型為0,float型為0.0f,boolean型為false 物件型別的初始值為null 如果構造方...

java類執行順序

先執行父類的靜態變數和靜態 塊,如果有初值為其賦值,沒有就賦值預設初始值 執行當前類的靜態變數和靜態 塊,如果有初值為其賦值,沒有就賦值預設初始值 執行當前類成員的預設賦值,int 0,boolean false等 執行當前類的構造方法,顯示或者掩式呼叫父類的構造方法,如果構造方法 塊中有this,...