【发布时间】:2013-10-22 21:38:10
【问题描述】:
好的,所以基本上我正在创建一个程序,它允许用户选择一个形状(三角形、正方形、圆形),然后它接受一个 int 并计算边界长度和面积。
我这样做没有问题,并且有一个运行良好的程序。 (https://gist.github.com/anonymous/c63a03c129560a7b7434 4 个类)但是现在我必须用多态性概念来实现它,老实说,我正在为如何做到这一点而苦苦挣扎。
关于继承,我有一个基本的想法
Main
|
Shapes
/ | \
triangle circle square
但是我不明白当三角形/正方形/圆形类中的所有方法都是唯一的时我应该如何覆盖,没有“抽象”方法可以从“形状”类继承.
如果有人可以快速查看我链接的代码并提出一种方法,将不胜感激。
对不起,如果我解释得不好。谢谢。
【问题讨论】:
-
嗯,它们都共享一个相似的构造函数
A(double)。它们都有共同的方法:getArea(double) & getBoundaryLength(double)。如果将所有这些作为抽象方法和必需的构造函数放入抽象类中,它应该可以工作。 -
getArea 和 getBoundaryLength 绝对可以抽象出来。请记住,抽象意味着“找到 2 个不同事物的共同部分”
-
您到底想要什么?您是否尝试访问特定派生类独有的派生类中的方法??
标签: java polymorphism