静态代码块-代码块-构造方法(父子类)执行顺序

public class Fu {
    static {
        System.out.println("这是父类静态代码块");
    }
    {
        System.out.println("这是父类构造代码块");
    }
    public Fu(){
        System.out.println("这是父类构造方法");
    }
}
public class ZiDemo extends Fu {
    static {
        System.out.println("这是子类静态代码块");
    }
    {
        System.out.println("这是子类构造代码块");
    }
    public ZiDemo(){
        System.out.println("这是子类构造方法");
    }
    public static void main(String[] args) {
        System.out.println("这是子类的main方法");
        ZiDemo ziDemo = new ZiDemo();
    }
}
public class FuZiDemoTest {
    static {
        System.out.println("这是测试类静态代码块");
    }
    public static void main(String[] args) {
        System.out.println("这是main方法");
        ZiDemo ziDemo = new ZiDemo();
    }
}

当执行子类的main方法时的结果

静态代码块-代码块-构造方法(父子类)执行顺序_第1张图片

当执行测试类的main方法时的结果

静态代码块-代码块-构造方法(父子类)执行顺序_第2张图片

 

 

 

 

 

 

 

 

 

 

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