java继承问题

coolws123 2011-12-28 07:18:03
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,谁能解释下这是如何继承的(最好有详细解释)。先谢谢了~~
...全文
111 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
-迷糊- 2011-12-28
  • 打赏
  • 举报
回复
第一个0是new Sub()的时候Sub()先执行父类构造函数,父类构造函数初始化的时候先初始化i=10,执行print的时候执行子类重写的print这时候j还是0。

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

51,409

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧