如何概括这个具体的课程?

时间:2016-05-02 21:23:29

标签: java

以下@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) {

  }
}

1 个答案:

答案 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>