早上,需求分析师问我一个类的初始化问题,一个有继承关系的类的初始化问题,我觉得我回答得不是非常清晰,所以我在这里总结一下:
单个类的初始化顺序:
1. 静态变量
2. 静态初始化块
3. 变量
4. 初始化块
5. 构造函数
记着,最后调用的才是构造函数
带有继承关系的类的初始化顺序:
1.父类--静态变量
2.父类--静态初始化块
3.子类--静态变量
4.子类--静态初始化块
5.父类--变量
6.父类--初始化块
7.父类--构造函数
8.子类--变量
9.子类--初始化块
10.子类--构造函数
注意: 静态的总是先于非静态的
但是同为静态的或者非静态的变量和块之间的先后顺序是 谁先定义就谁先执行的
单个类的初始化顺序:
1. 静态变量
2. 静态初始化块
3. 变量
4. 初始化块
5. 构造函数
记着,最后调用的才是构造函数
带有继承关系的类的初始化顺序:
1.父类--静态变量
2.父类--静态初始化块
3.子类--静态变量
4.子类--静态初始化块
5.父类--变量
6.父类--初始化块
7.父类--构造函数
8.子类--变量
9.子类--初始化块
10.子类--构造函数
注意: 静态的总是先于非静态的
但是同为静态的或者非静态的变量和块之间的先后顺序是 谁先定义就谁先执行的