我们在类中有一个采用泛型参数
的方法public class XYZ {
public <T extends Animal> someMethod(T animal){}
}
我想在具有特定类型的子类中覆盖此方法,但不知道如何。如何解决这个问题?
public class ABC extends XYZ{
@Override
public Cat someMethod(Cat animal){} // error
}
答案 0 :(得分:5)
一种可能的解决方案是让您的XYZ
类通用:
public class XYZ<T extends Animal> {
public void someMethod(T animal) {
}
}
并宣布你的ABC
课程专门针对猫:
public class ABC extends XYZ<Cat> {
}
现在你可以写:
ABC cats = new ABC();
cats.someMethod(new Cat()); //ok
cats.someMethod(new Dog()); //does not compile