Java中动态代码块,构造代码块,静态代码块之间的执行顺序

Java中动态代码块,构造代码块,静态代码块之间的执行顺序

/**
 * Java中动态代码块,构造代码块,静态代码块之间的执行顺序
 * @author Administrator
 *
 */
class HelloA {

    public HelloA() {
        System.out.println("HelloA");
    }

    {
        System.out.println("I'm A class");
    }

    static {
        System.out.println("static A");
    }

}

public class HelloB extends HelloA {

    public HelloB() {
        System.out.println("HelloB");
    }

    {
        System.out.println("I'm B class");
    }

    static {
        System.out.println("static B");
    }

    public static void main(String[] args) {
        new HelloB();
    }
}

点击查看结果

static A       // 父类的静态代码块
static B       // 子类的静态代码块
I'm A class    // 父类的动态代码块
HelloA         // 父类的构造方法
I'm B class    // 子类的动态代码块
HelloB         // 子类的构造方法

猜你喜欢

转载自www.cnblogs.com/hglibin/p/9996816.html