java 代码块,静态代码块,构造器等的执行顺序

  写了一段测试代码,如下:

public class ExecutionSequence extends fatherClass{
    static{
        System.out.println("子类静态代码块");
    }
    {
        System.out.println("子类代码块");
    }
    public ExecutionSequence(){
        System.out.println("子类构造器");
    }
    public static void main(String[] args) {
        ExecutionSequence executionSequence = new ExecutionSequence();
    }
    
}

class fatherClass{
    public fatherClass(){
        System.out.println("父类构造器");
    }
    {
        System.out.println("父类代码块");
    }
    static{
        System.out.println("父类静态代码块");
    }
    
}

 

打印的结果为:

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

结论为:执行的顺序为  父类静态代码块->子类静态代码块->父类代码块->父类构造器->子类代码块->子类构造器

原文地址:https://www.cnblogs.com/hongcong/p/5775612.html