参考:https://blog.csdn.net/owenchan1987/article/details/52879774
https://www.cnblogs.com/mcxiaotan/p/8059173.html
Java程序初始化一般遵循3个原则:
1. 静态对象(变量)优先于非静态对象(变量)初始化。其中静态对象(变量)只初始 化一次,而非静态对象(变量)可能会初始化很多次
2. 父类优先于子类进行初始化
3. 按照成员变量的定义顺序进行初始化。即使变量定义散布于方法之中,他们依然在任何方法(包括构造函数)被调用前先初始化
总结:1. 父类static(顺序按照代码书写顺序进行)
2. 子类static(顺序按照代码书写顺序进行)
3. 父类非static域(顺序按照代码书写顺序进行) 父类构造器
4. 子类非static域(顺序按照代码书写顺序进行) 子构造器器