Java類的初始化順序

2021-09-05 11:58:00 字數 764 閱讀 6886

屬性、方法、構造方法、和自由塊都是類中的成員,在建立物件的時候各成員的執行順序如下

1、父類靜態成員和靜態初始化塊,按在**中出現的順序依次執行

2、子類靜態成員和靜態初始化塊,按在**中出現的順序依次執行

3、父類例項成員和例項初始化塊,按在**中出現的順序依次執行

4、執行父類構造方法

5、子類例項成員和例項初始化塊,按在**中出現的順序依次執行

6、執行子類的構造方法

public class main 

}public class parent

static

public parent()

}public class children extends parent

static

public children()

}

輸出結果為:

--parent 中的static初始化塊--

--children 中的static初始化塊--==

--parent 中的初始化塊--

--parent 中的構造方法--

--children 中的初始化塊--

--children 中的構造方法--

所以總結為:

1、類初始化:並且先初始化父類的類初始化塊。然後是子類的類初始化塊。

2、繼承關係的物件初始化:物件是先執行父類的物件初始化,再執行子類的物件初始化

3、物件初始化:物件初始化是先執行初始化塊,再執行構造方法。

Java類初始化順序

類的初始化順序 首先執行父類靜態的內容,父類靜態的內容執行完畢後,接著去執行子類的靜態的內容,當子類的靜態內容執行完畢之後,再去看父類有沒有非靜態 塊,如果有就執行父類的非靜態 塊,父類的非靜態 塊執行完畢,接著執行父類的構造方法 父類的構造方法執行完畢之後,它接著去看子類有沒有非靜態 塊,如果有就...

java類初始化順序

我們大家都知道,對於靜態變數 靜態初始化塊 變數 初始化塊 構造器,它們的初始化順序依次是 靜態變數 靜態初始化塊 變數 初始化塊 構造器。我們也可以通過下面的測試 來驗證這一點 public class initialordertest 初始化塊 構造器 public initialorderte...

java類初始化順序

我們大家都知道,對於靜態變數 靜態初始化塊 變數 初始化塊 構造器,它們的初始化順序依次是 靜態變數 靜態初始化塊 變數 初始化塊 構造器。我們也可以通過下面的測試 來驗證這一點 public class initialordertest 初始化塊 構造器 public initialorderte...