【发布时间】:2013-09-14 18:53:02
【问题描述】:
如果创建了子类的实例,则输出为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);
}
}
【问题讨论】:
标签: java overriding