通用接口方法和实现类

时间:2015-05-06 11:09:30

标签: java generics

我在Animal interface

中使用了这种界面方法
<T extends Animal> boolean isEqual(T pAnimal);

现在我遇到了实施问题。 我有两个课程DogCat。来自extends的两个类Animal。 我想覆盖该方法,但具体实现:

@Override
public boolean isEqual(Dog pDog) {
  // do some stuff.
  return true;
}

这会导致编译错误

must override or implement a supertype method

我如何定义接口,以便不必在我的具体实现类中创建typecast

提前致谢

的Stefan

1 个答案:

答案 0 :(得分:5)

如果将type参数移动到接口级别,它将起作用:

public interface MyInterface<T extends Animal> {
    boolean isEqual(T pAnimal);
}

然后

public class Dog implements MyInterface<Dog> {
    @Override
    boolean isEquals (Dog dog) {}
}
相关问题