关于静态语句块、非静态语句块,成员变量初始化、构造方法在父子类执行的顺序:

1、父类的静态语句块、
2、子类的静态语句块、
3、父类的成员变量初始化、
4、父类的非静态语句块、
5、父类的构造方法
6、子类的成员变量初始化
7、子类的非静态语句块
8、子类的构造方法

1、如果一个类的成员变量在声明时就进行初始化处理, 则先执行成员变量的初始化,然后调用构造方法创建实例
2、如果一个类中有静态语句块,则在加载到jvm时(不一定创建实例),先执行静态语句块,(并且只执行一次),再执行成员变量的初始化,最后调用构造方法创建实例
3、如果一个类中有非静态语句块,则非静态语句块在类的成员变量初始化之后,构造方法执行之前进行执行。(并且每次使用new创建实例对象时都会执行一次)

猜你喜欢

转载自www.cnblogs.com/lailuoqu/p/10461553.html
今日推荐