次のようなオブジェクトツリーがあります
Ball
/ \
LegalBall IllegalBall
そして、私には2つの方法があります:
class o {
AddBall(LegalBall l)
AddBall(IllegalBall i)
}
別のクラスでは、次のことをしたいと思います。
o.AddBall(myBall);
ここで、myBall は Ball 型です。そして、サブタイプに応じて正しいメソッドを呼び出すようにします。どうやら私はこれを行うことはできません... 引数は適用されません。
私が望むものを達成する方法を誰かが知っていますか? または、適切な回避策がある場合
ありがとう
編集:私が構築しようとしているアプリケーションは、クリケット スコアカード タイプのものです。したがって、ボウリングされるボールの種類に応じて、他のさまざまな要素が変化するはずです。
私の当初の意図は、ボールの種類と何らかの形式の UI から得点されるランを指定し、BallFactory から適切な種類のボールを作成できるようにすることでした。たとえば、チームのスコアにボールを送信しないと、値が追加されます。チームのスコアだけでなく、ノーボール カウンターに値を追加します。しかし、同じボールをバッツマン分析に渡して対処すると、バッツマンの合計に値-1しかスコアが付けられません..
私の当初の意図の説明が悪くないことを願っています。