当创建任何Java对象时,程序总会先依次调用每个父类非静态初始化块、父类构造器(总是从Object开始,默认调用无参构造器)执行初始化,最后才调用本类的非静态初始化块、构造器执行初始化。
如下代码:
class A{
{
printf("A");
}
public A(){
printf("A()");
}
}
class B extend A{
{
printf("B");
}
public B(){
printf("B()");
}
main(){
B b = new B();
}
}
输出结果为:
A
A()
B
B()