1.類初始化
main方法所在的類都會執行類初始化
如果是子類繼承父類,先執行<clinit>方法,先按照代碼順序初始化父類的靜态方法或者靜态代碼塊;
再初始化子類的靜态方法或者靜态代碼塊
2.執行個體初始化
父類的執行個體化方法:
(1)super();(最前)
(2)父類的非靜态變量;(按順序)
(3)父類的非靜态代碼塊;(按順序)
(4)父類的無參構造(最後)
注意:如果子類中重寫了父類的非靜态方法,則父類執行個體化執行子類重寫的方法
子類的執行個體化方法:
(1)super();(最前)
(2)子類的非靜态變量;(按順序)
(3)子類的非靜态代碼塊;(按順序)
(4)子類的無參構造(最後)