一点小小的疑问,请教大家

javaliuliu 2013-01-26 05:15:54

public class TestString {
public static void main(String[] args) {
Point p1 = new Point();
Point p2 = new ColorPoint();
ColorPoint p3 = new ColorPoint();
p1.draw(p1);
p1.draw(p2);
p2.draw(p3);
p2.draw(p1);
p2.draw(p2);
p2.draw(p3);
}
}
class Point {
public void draw(Point p) {
System.out.println("Draw in Point");
}
}
class ColorPoint extends Point {
public void draw(ColorPoint p) {
System.out.println("Draw in ColorPoint");
}
}
}

请问为什么调用的全是父类的方法?
...全文
200 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
beyond_rich 2013-01-27
  • 打赏
  • 举报
回复
WOW,学到了……
懒猫gg 2013-01-26
  • 打赏
  • 举报
回复
((ColorPoint)p2).draw(p3);
javaliuliu 2013-01-26
  • 打赏
  • 举报
回复
我想问下,那p2怎么才能能调用自己的draw方法呢? public void draw(ColorPoint p) { System.out.println("Draw in ColorPoint"); }
懒猫gg 2013-01-26
  • 打赏
  • 举报
回复
这个类里面还隐藏着一个方法 class ColorPoint extends Point { public void draw(Point p) { System.out.println("Draw in Point"); } //这个方法不是重构因为参数不一样 public void draw(ColorPoint p) { System.out.println("Draw in ColorPoint"); }
brightyq 2013-01-26
  • 打赏
  • 举报
回复
ColorPoint 类的draw(ColorPoint p) 方法,参数改为Point类型的。 重写的方法,参数类型要一致,这个没有多态。

62,621

社区成员

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

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