初学者的问题:关于继承

dxc65659531 2009-11-18 02:54:03
class A
{
int t;
A()
{ mb(1); }
public void mb(int a)
{t=t+a;}}
class B extends A
{
B()
{mb(2);}
public void mb(int i)
{t=t+i*2;
System.out.println(t);}
}
public class J
{
public static void main(String args[])
{ new B(); }
}请问这道题为什么答案会是2和6呢?
...全文
85 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
dxc65659531 2009-11-18
  • 打赏
  • 举报
回复
谢谢啊,就是这句“在B类中对mb这个方法重新定义了“我之前没有懂,现在明白了谢谢啊
祝一切顺利
smallbear923 2009-11-18
  • 打赏
  • 举报
回复
程序执行的时候,首先找到A类中的mb(1),在B类中对mb这个方法重新定义了,所以输出为t=2.

然后进入B类的mb(2),在上面执行后,t=2了。所以t=2+4 =6.

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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