读书人

java继承有关问题

发布时间: 2012-03-25 20:55:17 作者: rapoo

java继承问题
class Super{
int i=10;
Super(){
print();
i=20;
}
void print(){
System.out.print(i);
}
}
public class Sub extends Super{
int j=30;
Sub(){
print();
j=40;
}
void print(){
System.out.print(j);
}
public static void main(String[] args){
System.out.print(new Sub().j);
}
}
运行程序是03040,谁能解释下这是如何继承的(最好有详细解释)。先谢谢了~~

[解决办法]
第一个0是new Sub()的时候Sub()先执行父类构造函数,父类构造函数初始化的时候先初始化i=10,执行print的时候执行子类重写的print这时候j还是0。

父类构造函数执行完回到子类构造函数,先初始化J=30,然后执行print,这时候j=30.
然后构造函数最后j=40,执行new Sub().j时,j=40

读书人网 >Java相关

热点推荐