笔记
在执行main()方法的时候,首先会执行该类的方法,也就是类初始化方法,如果该类是子类,会先执行父类的方法,类初始化方法只会执行一次。
子类初始化过程:
- 父类的静态变量
- 父类的静态代码块
- 子类的静态变量
- 子类的静态代码块
对于1和2、3和4的执行顺序与先后位置有关。
接下来如果有实例化操作,会先执行父类的实例化方法,然后执行
子类的实例化方法。
对于子类而言:
- super()
2)成员变量
3)子类的非静态代码块
4)子类的无参构造
2和3有先后顺序
如果父类的方法被子类重写,那么执行父类的初始化的时候,如果调用了被重写的方法,会执行子类重写后的方法。