下面的@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>

10-06 09:23