【发布时间】:2017-03-17 11:59:41
【问题描述】:
例如
public abstract class ParentClass {
public abstract FooType getFoo();
...
}
然后是类似的东西
public abstract class SomeClass extends ParentClass {
public abstract SpecialFooType getFoo(); //clashes with the parent!
...
}
在这种情况下,来自 SomeClass 的 getFoo() 应该是实现接口 SpecialFooType 的 FooType。但是我不知道如何为此设置语法。
【问题讨论】:
-
SpecialFooType是否扩展FooType? -
@bradimus 不。FooType 只是它自己的类。但是,如果您从特定子类中获取 FooType,我希望它具有其他属性,这些属性在接口 SpecialFooType 中定义。换句话说,我希望子类中的 getFoo() 返回既是 FooType 又是 SpecialFooType 的东西。
-
您不能这样做,因为
SpecialFooType getFoo()和FooType getFoo()只会在返回类型上有所不同。它们将具有相同的签名。如果ParentClass是通用的,您可能会解决。 -
什么意思?
标签: java inheritance overriding abstract-class abstract