这里我编写了两个类,一个Father类和一个继承了Father的子类Son
public class Father {
static {
System.out.println("Father静态代码块");
}
{
System.out.println("Father非静态代码块");
}
Father() {
System.out.println("Father构造方法");
}
public static void main(String[] args) {
new Son();
}
}
class Son extends Father {
static {
System.out.println("Son静态代码块");
}
{
System.out.println("Son非静态代码块");
}
Son() {
System.out.println("Son构造方法");
}
}
运行程序,得到以下结果:
由此我们可得出子类的代码执行顺序:
父类静态代码块 -> 子类静态代码块 -> 父类非静态代码块 -> 父类构造方法 -> 子类非静态代码块 -> 子类构造方法