通用接口方法和实现类

Ste*_*ike 1 java generics

我有这个接口方法Animal interface:

<T extends Animal> boolean isEqual(T pAnimal);
Run Code Online (Sandbox Code Playgroud)

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

@Override
public boolean isEqual(Dog pDog) {
  // do some stuff.
  return true;
}
Run Code Online (Sandbox Code Playgroud)

这导致编译错误

must override or implement a supertype method
Run Code Online (Sandbox Code Playgroud)

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

提前致谢

斯特凡

Era*_*ran 5

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

public interface MyInterface<T extends Animal> {
    boolean isEqual(T pAnimal);
}
Run Code Online (Sandbox Code Playgroud)

然后

public class Dog implements MyInterface<Dog> {
    @Override
    boolean isEquals (Dog dog) {}
}
Run Code Online (Sandbox Code Playgroud)