子类A继承父类B, A a = new A(); 则父类B构造函数、父类B静态代码块、父类B非静态代码块、子类A构造函数、子类A静态代码块、子类A非静态代码块 执行的先后顺序是

按照先后顺序:
1,静态先于非静态代码库执行(静态代码块随着类的加载而加载,初始化只执行一次)
2,父类先于子类
3,非静态代码块优于构造函数执行
所以执行顺序如下:
父类B静态代码块->子类A静态代码块->父类B非静态代码块->父类B构造函数->子类A非静态代码块->子类A构造函数

猜你喜欢

转载自www.cnblogs.com/LLD-3/p/9664276.html