我的实际设置有点复杂,所以我将制定一个更通用的示例。考虑以下类(使用 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 的成员。一种解决方案是只为每个子类单独实现 subSet 方法,每次都给它适当的返回类型,但是如果 subSet 的实现复杂且子类很多,这显然是不优雅的。我想要一种方法来以某种方式在 Set 的成员函数中引用 Set 的任意子级,但我想不出一种方法来做到这一点。有任何想法吗?