1. 程式人生 > >靜態初始化和例項初始化

靜態初始化和例項初始化

父類單獨的效果:
當父類單獨執行時,靜態初始化塊優先執行,然後是例項初始化塊,最後才是構造器;
這裡寫圖片描述

子類單獨效果
首先執行父類的靜態初始化塊和子類的初始化塊(優先執行靜態)然後執行父類的例項初始化塊和構造器,最後執行子類的例項初始化塊和構造器
這裡寫圖片描述

父類子類效果1
父在前子在後:
先將父類的物件例項出來後,進行子類的例項化,首先執行子類的靜態初始化塊,然後回到父類執行父類的例項初始化塊和構造器,再執行子類的例項初始化塊和構造器
這裡寫圖片描述
父類子類效果2
子在前父在後:
先執行父類的靜態初始化塊,然後執行子類的靜態初始化塊
之後回到父類執行父類的例項初始化塊和構造器
在回到子類執行子類的例項初始化塊和構造器,至此子類的例項化才建立完成,接下來就執行建立父類的程式
執行例項初始化(可執行多次)塊和構造器
這裡寫圖片描述

結論:

  • 首先靜態初始化塊 ,其次 例項初始化塊,最後構造器
  • 靜態初始化塊只能執行一次,例項初始化塊建立幾次物件執行幾次