java创建对象过程中的变量初始化过程

情况一,子类有变量age:show()打印的为子类空间里的age.
1.super()先执行(这里改变的是父类的变量(12-11-10)所以子类为默认初始化值0);
2.显示初始化;-90
3.执行构造代码块;-9
4.在执行构造函数(子类有就用子类的变量)-8

情况二,子类没有变量age:show()打印的为父类空间里的age.
1.super()先执行(这里改变的是父类的变量-显示初始化12-构造代码块11-构造函数10);
2.子类构造代码块-12-9
3.构造函数-8

代码如下:子类有变量age:

子类代码:
java创建对象过程中的变量初始化过程
父类代码:
java创建对象过程中的变量初始化过程
测试代码:
java创建对象过程中的变量初始化过程
运行结果:
子类有变量age:show()打印的为子类空间里的age.
java创建对象过程中的变量初始化过程
子类没有变量age:show()打印的为父类空间里的age.
java创建对象过程中的变量初始化过程