1.调用所有的static块 顺序由父向子,同一类中的顺序,按照定义顺序而定
2.子类所有的类属性全部赋为默认值
3.调用父类初始化过程(递归地包括整个构造过程)
4.子类所有的类属性做真正的赋值操作
5.子类的构造函数
当时这里我们要说的是一个override的一个注意点
我们来看这样一个程序就知道了































输出的结果是
null
luyechen
为什么呢,因为A调用的Draw,其实已经是B的Draw.而这如我们看到的,这个时候myCotent只是被赋了默认的值也就是null.所以只能打出null来.
这就提醒我们在构造函数中最好不要用自身的方法来进行初始化,因为我们不知道自己是否会被inherite,这个方法是否会被override.如果非要用自身的方法,最好也是用final的