如果创建了子类的实例,则输出为sub0
sub2
关于这个的两个问题:
为什么超类的构造函数没有完成,却调用了子类的方法?
为什么从超类构造函数(
sub0
输出)调用时实例字段未初始化?
例子:
class Superclass{
int i = 1;
Superclass(){
aMethod();
}
void aMethod(){
System.out.println("super" + i);
}
}
class Subclass extends Superclass{
int i = 2;
Subclass(){
aMethod();
}
void aMethod(){
System.out.println("sub" + i);
}
}