就算不写main方法里面的3句,也会执行5 1 10 6 因为main方法所在的类需要先加载和初始化
执行顺序如下:先初始化父类再初始化子类
静态实例变量显示赋值和静态代码块代码从上到下顺序执行(根据书写顺序)
子类的实例化方法:
(1)super()(最前)
(2)i=test()
(3)子类的非静态代码块
(4)子类的无参构造(最后)
父类的实例化方法:
(1)super()(最前)
(2)i=test()(注意:这里输出的子类重写的方法)
(3)父类的非静态代码块
(4)父类的无参构造(最后)
非静态实例变量显示赋值和非静态代码块代码从上到下顺序执行(根据书写顺序)
每次创建实例对象,调用对应的构造器,执行对应的init方法