- 执行父类的静态代码块
- 执行子类的静态代码块
- 执行父类的构造代码块
- 执行父类的构造函数
- 执行子类的构造代码块
- 执行子类的构造函数
class Parent {
// 静态初始化块
static {
System.out.println("父类--静态初始化块");
}
// 构造器
public Parent() {
System.out.println("父类--构造器");
}
// 初始化块
{
System.out.println("父类--初始化块");
}
}
class SubClass extends Parent {
// 静态初始化块
static {
System.out.println("子类--静态初始化块");
}
// 初始化块
{
System.out.println("子类--初始化块");
}
// 构造器
public SubClass() {
System.out.println("子类--构造器");
}
// 程序入口
public static void main(String[] args) {
new SubClass();
System.out.println("----------");
new SubClass();
}
}
输出:
父类–静态初始化块
子类–静态初始化块
父类–初始化块
父类–构造器
子类–初始化块
子类–构造器
——————
父类–初始化块
父类–构造器
子类–初始化块
子类–构造器