我有这个接口方法Animal interface:
<T extends Animal> boolean isEqual(T pAnimal);
Run Code Online (Sandbox Code Playgroud)
现在我遇到了实施问题.我有两个类Dog和Cat.两个班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在我的具体实现类中创建?
提前致谢
斯特凡
如果将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)