我有一个对象树,看起来像这样:
Ball
/ \
LegalBall IllegalBall
我有两种方法:
class o {
AddBall(LegalBall l)
AddBall(IllegalBall i)
}
在另一个类中,我想要做如下操作:
o.AddBall(myBall);
其中myBall是Ball类型。并根据子类型调用正确的方法。
显然我做不到这一点……参数不适用。
有人知道我如何实现我的目标吗?或者是否有好的解决方法?
谢谢
编辑:我正在尝试构建一个板球记分卡类型的应用程序。因此,根据投掷的球类型,各种其他元素应该发生变化。
我的最初意图是能够从某种形式的UI中指定球类型和得分,然后从BallFactory创建适当类型的球,例如当我向团队得分发送无球时,它将把值添加到团队得分上,但也将该值添加到无球计数器上。但是当我将同样的球交给Batsmens Analysis处理时,它只会将值-1计入击球手的总分中。
希望这不是对我的最初意图的太糟糕的解释。