下面的@Override
批注指示我没有覆盖接口中定义的方法。如何在我的具体类中使用泛型,使其覆盖接口方法?
public interface AInterface<T extends MyType> {
void do(T thing)
}
public abstract class BaseMyClass implments AInterface {
// other stuff
}
// AType extends MyType
public class MyClass extends BaseMyClass <AType> {
@Overide
public void doThing(AType atype) {
}
}
最佳答案
BaseMyClass
正在实现AInterface
的原始类型,您需要将泛型扩展到抽象类本身或对其进行定义:
public abstract class BaseMyClass implments AInterface<AType>
public abstract class BaseMyClass<E extends MyType> implments AInterface<E>
BaseClass<AType>
(假设您是说BaseMyClass
)实际上并没有给您AInterface<AType>