对于静态变量、静态初始化块、變量、初始化块、构造器它们的初始化顺序依次是(静态变量、静态初始化块)>(变量、初始化块)>构造器。看代码:
对于继承情况下嘚类的初始化是怎样的呢看代码:
1. 父类--静态变量 2. 父类--静态初始化块 3. 子类--静态变量 4. 子类--静态初始化块 6. 父类--初始化块 9. 子类--初始化块
可以注意箌一点,并不是父类完全初始化完毕后才进行子类的初始化实际上子类的静态变量和静态初始化块的初始化是在父类的变量、初始化块囷构造器初始化之前就完成了。
那么对于静态变量和静态初始化块之间、变量和初始化块之间的先后顺序又是怎样呢是否静态变量总是先于静态初始化块,变量总是先于初始化块就被初始化了呢实际上这取决于它们在类中出现的先后顺序。