考虑一下我在 Java 中有一个抽象类的情况;
public abstract class Foo
{
public abstract int myOperation();
}
现在,它的一些子类可能会像这样覆盖 myOperation;
class A extends Foo
{
public int myOperation()
{
// Do stuff
}
}
但是,如果一个子类想要返回一些其他数据类型,例如;
class A extends Foo
{
public Object myOperation()
{
// Do stuff
}
}
我希望方法名称相同,以保持设计完整,以便客户端不必选择调用哪个方法。除了具有单独的方法(其中一个是空实现或使用 Object 作为返回类型)之外,是否有解决方法?或者这是一个非常糟糕的面向对象设计的例子?
我听说过 C++ 中的协变返回类型,并想知道 Java 是否有其他机制。
我也可以在这里自由使用界面。