关于继承和static代码块的小例子,可以帮助理解其调用顺序;
运行结果:
public class Hello {
public static void main(String[] args) {
A a = new B();
a = new B();
}
}
class A {
static {
System.out.println("A的static块");
}
public A() {
System.out.println("A的构造函数");
}
}
class B extends A {
static {
System.out.println("B的static块");
}
public B() {
System.out.println("B的构造函数");
}
}
运行结果:
A的static块
B的static块
A的构造函数
B的构造函数
A的构造函数
B的构造函数