继承中代码的执行顺序
2021/12/28小于 1 分钟
继承中代码的执行顺序
顺序依次向下:
- 父类静态对象,父类静态代码块。
- 子类静态对象,子类静态代码块。
- 父类非静态对象,父类非静态代码块。
- 父类构造函数。
- 子类费静态对象,子类非静态代码块。
- 子类构造函数。
提示
如果子类重写了父类中的某些方法,则创建子类时,父类的代码块、构造器中使用到被重写的方法都会被替换为重写后的方法。
不会初始化子类的几种情况:
- 调用的是父类的 static 方法或者字段。
- 调用的是父类的 final 方法或者字段。
- 通过数组来引用。