您不能在子类中强制使用构造函数的特定签名-但 可以 强制它通过抽象类中的构造函数并使用两个整数。子类 可以
从无参数构造函数中调用该构造函数,例如,传入常量。那是您可以找到的最接近的。
此外,正如您所说,您对实现一无所知-
那么您如何知道让他们拥有需要两个整数的构造函数是合适的呢?如果其中之一也需要字符串怎么办?或者对于这些整数之一使用常量可能很有意义。
这里的全局是什么- 为什么 要在子类上强制使用特定的构造函数签名?(正如我所说,您实际上无法 做到 这一点,但是如果您解释了为什么 要这样做
,则可能会提出解决方案。)
一种选择是为工厂提供单独的接口:
interface MyClassFactory{ MyClass newInstance(int x, int y);}然后,您的每个具体子类
MyClass还需要一个工厂,该工厂知道如何在给定两个整数的情况下构建实例。但是,这并不十分方便-
而且您仍然需要构建工厂本身的实例。同样,这里的真实情况是什么?



