静态代码块,普通代码块,构造函数先后顺序
/*对于父类中的构造函数,普通代码块,静态代码块中的先后顺序
顺序是静态代码块,普通代码块,构造函数。对于子类继承父类,且子类
中也有自己的静态代码块,普通代码块,构造函数。当我们实例化一个对象时
首先输出的是父类静态代码块,子类静态代码块,父类普通代码块,父类构造函数
子类普通代码块,子类构造函数。
*/
简单举例:
class HelloA{
public HelloA(){
System.out.println("HelloA");
}
//普通代码块
{
System.out.println("I am a class");
}
//静态代码块
static{
System.out.println("static A");
}
}
public class HelloB extends HelloA{
public HelloB(){
System.out.println("helloB");
}
{
System.out.println("I am a class");
}
static{
System.out.println("static B");
}
public static void main(String[] args){
new HelloB();
}
}
/*
输出结果:static A
static B
I am a class
HelloA
I am a Class
HelloB
*/