java類執行順序


  1. 如果父類有靜態成員賦值或者靜態初始化塊,執行靜態成員賦值和靜態初始化塊
  2. 如果類有靜態成員賦值或者靜態初始化塊,執行靜態成員賦值和靜態初始化塊
  3. 將類的成員賦予初值(原始類型的成員的值為規定值,例如int型為0,float型為0.0f,boolean型為false;對象類型的初始值為null)
  4. 如果構造方法中存在this()調用(可以是其它帶參數的this()調用)則執行之,執行完畢后進入第7步繼續執行,如果沒有this調用則進行下一步。(這個有可能存在遞歸調用其它的構造方法)
  5. 執行顯式的super()調用(可以是其它帶參數的super()調用)或者隱式的super()調用(缺省構造方法),此步驟又進入一個父類的構造過程並一直上推至Object對象的構造。
  6. 執行類申明中的成員賦值和初始化塊。
  7. 執行構造方法中的其它語句。

 

最終的簡化順序版本是:

 

  1. 父類的靜態成員賦值和靜態塊
  2. 子類的靜態成員和靜態塊
  3. 父類的構造方法
  4. 父類的成員賦值和初始化塊
  5. 父類的構造方法中的其它語句
  6. 子類的成員賦值和初始化塊
  7. 子類的構造方法中的其它語句

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM