涉及:静态初始化代码块、构造代码块、构造方法
public class HelloB extends HelloA
{
public HelloB()
{
}
{
System.out.println("I’m B class");
}
static
{
System.out.println("static B");
}
public static void main(String[] args)
{
new HelloB();
}
}
class HelloA
{
public HelloA()
{
}
{
System.out.println("I’m A class");
}
static
{
System.out.println("static A");
}
}
当涉及到继承时,按照如下顺序执行:
- 执行父类的静态代码块
- 执行子类的静态代码块
- 执行父类的构造代码块
- 执行父类的构造函数
- 执行子类的构造代码块
- 执行子类的构造函数
- 在执行子类中的其他代码段
答案是:
static A
static B
I’m A class
I’m B class