1.创建第一个子类对象时:
父类静态块->被调子类静态块->父类动态块->父类无参构造器->被调子类动态块->被调子类无参构造器
2.创建第一个另一子类对象时:
被调子类静态块->父类动态块->父类无参构造器->被调子类动态块->被调子类无参构造器
注意:1.父类静态块只会被调用一次。
2.这里是“另一子类”,就是与第一个子类不同名的子类
3.创建第二个同名子类对象:
父类动态块->父类无参构造器->被调子类动态块->被调子类无参构造器
注:同名之类被创建之后,其同名静态块不会再次执行。
总结:
1..不同名子类之间的静态块不会相互调用,也没有任何联系。
2.不同名子类在创建对象之前,如果父类的静态块没有被调用过,那么就先调用父类静态块,此时再看本子类是不是第一次被加载,如果是,那么接着调用本子类静态块;如果在此之前父类静态块已被调用(即父类已被加载过一次),那么将不再调用父类静态块,然后再看是否调用自己的静态块。
参考:https://blog.youkuaiyun.com/baidu_38760069/article/details/79915652