类A:
class A
{
static{
System.out.print("1");
}
public A()
{
System.out.print("2");
}
}
类B:
class B extends A
{
static{
System.out.print("a");
}
public B()
{
System.out.print("b");
}
}
类Hello:
public class Hello
{
public static void main(String[] args)
{
A ab = new B();//输出结果1a2b
ab = new B();//输出结果1a2b2b
}
}
说明:类中的static代码段,我们可以认为是当类首次被虚拟机加载时执行的代码,加载完成后执行类的构造函数。对于继承而言,首先执行基类的构造函数,在执行本身的构造函数。