天天看點

類初始化和執行個體初始化(父子類)

1.類初始化

main方法所在的類都會執行類初始化

如果是子類繼承父類,先執行<clinit>方法,先按照代碼順序初始化父類的靜态方法或者靜态代碼塊;
再初始化子類的靜态方法或者靜态代碼塊
           

2.執行個體初始化

父類的執行個體化方法:
(1)super();(最前)
(2)父類的非靜态變量;(按順序)
(3)父類的非靜态代碼塊;(按順序)
(4)父類的無參構造(最後)

注意:如果子類中重寫了父類的非靜态方法,則父類執行個體化執行子類重寫的方法

子類的執行個體化方法:
(1)super();(最前)
(2)子類的非靜态變量;(按順序)
(3)子類的非靜态代碼塊;(按順序)
(4)子類的無參構造(最後)
           
類初始化和執行個體初始化(父子類)