类的初始化顺序:
1.从最顶层父类开始按照顺序分配空间给属性并赋默认值(和0等值的值),如果是静态成员则初始化为正确的值(程序员赋的默认值)。
2.然后依次到子类分配空间赋默认值。这是所有的属性都分配了存储空间和默认值。
3.再从最顶层父类开始按照顺序给变量赋正确的值(程序员赋的默认值),有静态代码块的执行静态代码块。
4.执行最顶层的构造函数。
5.依次到子类去给变量赋正确的值(程序员赋的默认值)。
简单说:
1.给成员分配空间和默认值(静态成员直接赋程序员赋的值)。从最顶层父类开始,贯穿所有父类和当前类。
2.给成员赋正确的值(程序员赋的默认值),执行静态代码块,执行构造函数。从最顶层类开始,贯穿所有父类和当前类。