1. 初始化原则
(1) 静态对象(变量)优先于非静态对象(变量)初始化,其中静态对象(变量)初始化一次,非静态对象(变量)可能会初始化多次。
(2) 父类优先于子类初始化
(3) 按照成员变量定义顺序初始化,即使变量定义与方法定义中,依然在被调用前初始化。
2. Java初始化顺序
(1) 父类静态变量
(2) 父类静态代码块
(3) 子类静态变量
(4) 子类静态代码块
(5) 父类非静态变量
(6) 父类非静态代码块
(7) 父类构造函数
(8) 子类非静态变量
(9) 子类非静态代码块
(10) 子类构造函数