java子类继承父类执行顺序与例题

 

顺序是:

父类静态代码块 > 子类静态代码块 > 父类代码块 > 父类构造 > 子类代码块 > 子类构造

 

初始化过程: 

1.父类静态代码块 (  java虚拟机加载类时,就会执行该块代码,故只执行一次)

2 .子类静态代码块 (  java虚拟机加载类时,就会执行该块代码,故只执行一次)

3. 父类属性对象初始化

4.父类普通代码块(每次new,每次执行 

5. 父类构造函数(每次new,每次执行)

6.子  属性对象初始化

7.子类普通代码块(每次new,每次执行 

8.子 类构造函数(每次new,每次执行)

即:

        静态块:用static申明,JVM加载类时执行,仅执行一次

        构造块:类中直接用{}定义,每一次创建对象时执行

        执行顺序优先级:静态块>main()>构造块>构造方法

 

简单的例题:

例题1:

java子类继承父类执行顺序与例题_第1张图片

运行结果是:

YXYZ

(1)初始化父类的普通成员变量和代码块,执行  Y y=new Y();  输出Y 

(2)再执行父类的构造方法;输出X

(3) 初始化子类的普通成员变量和代码块,执行  Y y=new   Y();  输出Y 

(4)再执行子类的构造方法;输出Z

 所以输出YXYZ

例题3:

java子类继承父类执行顺序与例题_第2张图片

解析:

java子类继承父类执行顺序与例题_第3张图片

你可能感兴趣的:(Java)