由先到后依次的执行流程为:
1、父类静态变量
2、父类静态代码块
3、子类静态变量
4、子类静态代码块
5、父类非静态变量
6、父类构造函数
7、子类非静态变量
8、子类构造函数
总结如下:
1、相同代码块之间,遵循先父类再子类的顺序
2、相同类别之间由先到后遵循,静态变量,静态代码块,非静态变量,构造函数的顺序
static{ } > { } > 构造方法
各种代码块介绍:
名称 | 形式 | 位置 | 作用 |
局部代码块 | {} | 局部位置 | 用于限定变量的生命周期 |
构造代码块 | {} | 在类中的成员位置 | 可以把多个构造方法的共同代码放在一起 |
静态代码块 | static{} | 在类中的成员位置 | 一般对类进行初始化 |