类构造器的加载顺序,继承类

父类
类构造器的加载顺序,继承类_第1张图片
子类
类构造器的加载顺序,继承类_第2张图片

当运行子类main方法时候打印为
(解析):主要考察类,继承,代码块的加载顺序
有继承关系的,在实例化子类的时候需要先加载父类
第一步:加载父类静态,按照顺序加载,第一个为父类的静态属性j,,调用方法method,第一个打印的是(5)
第二步:加载父类的静态代码块,打印的是(1)
-------需要加载子类的静态部分
按照父类的顺序打印顺序依次为
第三步:(10)
第四步:(6)
----------需要加载非静态常量部分
按照类加载顺序,最后加载构造器部分,前面按照顺序依次加载
第五步:加载父类 i 属性,调用test函数,但是由于实例化的为Son,所以调用子类的方法,打印(9)—不太清楚
第六步:加载父类的代码块,打印(3)
第七步:父类构造器(2)
-----------加载子类部分
即第七步:(9)(8)(7)
第二次实例化Son
前面静态部分随着类已经加载所以后面实例即只加载后面部分
打印(9)(3)(2)(9)(8)(7)

你可能感兴趣的:(JAVA基础)