java 静态代码块 构造代码块 构造函数 在子父类中的执行顺序

1.java源码

public class Test03 {
    public static void main(String[] args) {
        new B();
    }
}

class A{
    static{
        System.out.println("我是A静态代码块");
    }
    {                                          //这个是构造代码块
        System.out.println("我是A构造代码块");
    }

    public A() {
        System.out.println("我是A的构造函数");
    }

}

class B extends A{
    static {
        System.out.println("我是B静态代码块");
    }

    {
        System.out.println("我是B构造代码块");
    }

    public B() {
        System.out.println("我是B构造函数");
    }
}

2.编译后代码

class B extends A {
    public B() {
        System.out.println("我是B构造代码块");
        System.out.println("我是B构造函数");
    }

    static {
        System.out.println("我是B静态代码块");
    }
}

3.终端打印信息
在这里插入图片描述

你可能感兴趣的:(java)