java静态代码块、构造代码块、构造方法的执行先后顺序问题

public class HelloA {
    public HelloA(){//构造函数
        System.out.println("A的构造函数");    
    }
    {//构造代码块
        System.out.println("A的构造代码块");    
    }
    static {//静态代码块
        System.out.println("A的静态代码块");        
    }
}
class HelloB extends HelloA{
    public HelloB(){//构造函数
        System.out.println("B的构造函数");    
    }
    {//构造代码块
        System.out.println("B的构造代码块");    
    }
    static {//静态代码块
        System.out.println("B的静态代码块");        
    }
    public static void main(String[] args) {
    	System.out.println("main方法");
        HelloB b=new HelloB();        
    }
}
运行结果:
A的静态代码块
B的静态代码块
main方法
A的构造代码块
A的构造函数
B的构造代码块
B的构造函数

版权声明:本文为starwolfboy原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。