当父类与子类都有静态代码块和构造函数的时候,执行顺序如下:
父类静态代码块 > 子类静态代码块
父类构造函数 > 子类构造函数(先有父亲,后有孩子)
如果是多级继承关系的话,最高层的父类首先执行,然后依次递减
总结:静态优先执行,父类优先执行
注意:静态代码块是在JVM加载类的时候执行的,而且静态代码块执行且仅执行一次
构造方法和静态代码块的区别
静态代码块 当且仅当第一次执行的时候才执行,一般用于初始化。
而构造方法 是每次new对象的时候都执行,也是初始化
二者的区别在于 一个是仅执行一次 另一个是每次new对象的时候执行
所以初始化代码 写在那个部分里就要根据具体情况而进行选择 |