一个基础的问题,大家帮帮忙!谢了!

lxbox 2004-08-29 10:48:10
结果为什么会是那样我不太明白!

class Meng
{
protected void one()
{
two();
System.out.println("One!");
}
protected void two()
{
System.out.println("Two!");
}
}
class Winner extends Meng
{
protected void two()
{
System.out.println("Winner!");
}
public static void main(String[] args)
{
Winner a = new Winner();
a.one();
}
}

结果为:Winner!
One!
...全文
83 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
andy_zhang_ping 2004-08-30
  • 打赏
  • 举报
回复
二楼说的对!
lxbox 2004-08-29
  • 打赏
  • 举报
回复
自己定一下不好意思打扰了!
lxbox 2004-08-29
  • 打赏
  • 举报
回复
兄弟们在帮忙一下好不?
lxbox 2004-08-29
  • 打赏
  • 举报
回复
我执行a.one()是不是向上转型阿?
austin909 2004-08-29
  • 打赏
  • 举报
回复
因为你执行的是a.one(),a是类Winner的对象,所以a.one()中的two()执行的是Winner中重载的two(),所以出现这样的结果。
shine333 2004-08-29
  • 打赏
  • 举报
回复
这个就是叫多态。其行为方式就是如楼上几位所言。

如果还是搞不明白,那么就想你的标题所言,这个是个基础问题。初学的时候,没有必要完全搞清楚,只要知其然就可以了。
Ardor007 2004-08-29
  • 打赏
  • 举报
回复
子类Winner覆盖了父类Meng的方法protected void two(),所以子类Winner的对象a在调用one()方法时,自动调用子类覆盖过的方法protected void two()。
kkkkwx 2004-08-29
  • 打赏
  • 举报
回复
子类在调用时方法时,对于同样的(父类中有子类中也有),就会调用子类的方法

62,615

社区成员

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

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