以下@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) {
}
}
答案 0 :(得分:3)
BaseMyClass
正在实现AInterface
的rawtype,您需要将泛型扩展到抽象类本身或定义它:
public abstract class BaseMyClass implments AInterface<AType>
public abstract class BaseMyClass<E extends MyType> implments AInterface<E>
BaseClass<AType>
(假设您的意思是BaseMyClass
)实际上并没有给您AInterface<AType>