私の実際のセットアップは少し複雑なので、より一般的な例を作成します。次のクラスを検討してください (Java 構文を使用)。
class Set
{
...
Set subSet(Element[] elementList)
{
...
}
}
class SetOfNumbers extends Set
{
...
int operationOnSetsOfNumbers()
{
...
}
}
以下のコードが書けるようになりたいです。
Set someSet = new SetOfNumbers(...);
System.out.println(someSet.subset(...).operationOnSetsOfNumbers());
もちろん、 operationOnSetsOfNumbers() は Set のメンバーではないため、これはコンパイルされません。1 つの解決策は、子クラスごとに個別に subSet メソッドを実装し、毎回適切な戻り値の型を与えることですが、subSet の実装が複雑で子が多数ある場合、これは明らかに洗練されていません。Set のメンバー関数内で Set の任意の子を参照する方法が欲しいのですが、これを行う方法が思いつきません。何か案は?