- 初始化顺序:
父类静态代码块>子类静态代码块>父类非静态代码块>父类构造方法>子类非静态代码块>子类构造方法
- 测试代码:
public class Test{
public static void main(String[] args) {
SubClass subClass = new SubClass();
}
}
class ParentClass {
static {
System.out.println("===父类静态代码块===");
}
{
System.out.println("===父类非静态代码块===");
}
public ParentClass(){
System.out.println("===父类构造方法===");
}
}
class SubClass extends ParentClass {
static {
System.out.println("===子类静态代码块===");
}
{
System.out.println("===子类非静态代码块===");
}
public SubClass() {
System.out.println("===子类构造方法===");
}
}
运行结果:
=父类静态代码块=
=子类静态代码块=
=父类非静态代码块=
=父类构造方法=
=子类非静态代码块=
=子类构造方法=