1.类初始化
main方法所在的类都会执行类初始化
如果是子类继承父类,先执行<clinit>方法,先按照代码顺序初始化父类的静态方法或者静态代码块;
再初始化子类的静态方法或者静态代码块
2.实例初始化
父类的实例化方法:
(1)super();(最前)
(2)父类的非静态变量;(按顺序)
(3)父类的非静态代码块;(按顺序)
(4)父类的无参构造(最后)
注意:如果子类中重写了父类的非静态方法,则父类实例化执行子类重写的方法
子类的实例化方法:
(1)super();(最前)
(2)子类的非静态变量;(按顺序)
(3)子类的非静态代码块;(按顺序)
(4)子类的无参构造(最后)