Java類初始化順序

2021-07-11 10:56:32 字數 370 閱讀 5016

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

總之一句話,靜態**塊內容先執行,接著執行父類非靜態**塊和構造方法,然後執行子類非靜態**塊和構造方法。

注意:子類的構造方法,不管這個構造方法帶不帶引數,預設的它都會先去尋找父類的不帶引數的構造方法。如果父類沒有不帶引數的構造方法,那麼子類必須用supper關鍵子來呼叫父類帶引數的構造方法,否則編譯不能通過。

java類初始化順序

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

java類初始化順序

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

java 類初始化順序

我們先來看段 public class inittest static public inittest string str public static intprint string str public static void main string args 相信大多數同行在不執行本段 的情況...