继承中的代码块和构造方法的执行顺序探索

class Person{
    static {
        System.out.println("执行Person静态代码块");
    }

    {
        System.out.println("执行Person构造代码块");
    }
    public Person(){
        System.out.println("执行Person构造方法");
    }
}

class Student extends Person{
    static {
        System.out.println("执行Student静态代码块");
    }

    {
        System.out.println("执行Student构造代码块");
    }
    public Student(){
        System.out.println("执行Student构造方法");
    }
}
public class ExtendsStaticConstruct {
    public static void main(String args[]){
        Student student = new Student();
    }

}

结果

执行Person静态代码块
执行Student静态代码块
执行Person构造代码块
执行Person构造方法
执行Student构造代码块
执行Student构造方法


你可能感兴趣的:(继承中的代码块和构造方法的执行顺序探索)