Java程序初始化顺序:
父类的静态代码块
子类的静态代码块
父类的普通代码块
父类的构造方法
子类的普通代码块
子类的构造方法Java程序初始化顺序:
父类的静态代码块子类的静态代码块父类的普通代码块父类的构造方法子类的普通代码块子类的构造方法
class A {
public A() {
System.out.println("class A");
}
{ System.out.println("I'm A class"); }
static { System.out.println("class A static"); }
}
public class B extends A {
public B() {
System.out.println("class B");
}
{ System.out.println("I'm B class"); }
static { System.out.println("class B static"); }
public static void main(String[] args) {
new B();
}
}
结果:
class A static
class B static
I’m A class
class A
I’m B class
class B