Java 使用不同的返回类型(泛型集合)重写
请帮我解决以下问题:Java 使用不同的返回类型(泛型集合)重写,java,generics,collections,Java,Generics,Collections,请帮我解决以下问题: 类Cat必须扩展Animal(保留继承) Animal.getAll()必须返回所有动物(猫、狗等),并且Cat.getAll()只能返回猫(不要更改签名) 我尝试过,但失败了,错误是返回类型与第8行的Animal.getAll()不兼容 class Animal { public static List<Animal> getAll() { return new ArrayList<Animal>(); } } c
Cat
必须扩展Animal
(保留继承)李>
Animal.getAll()
必须返回所有动物(猫、狗等),并且Cat.getAll()
只能返回猫(不要更改签名)class Animal {
public static List<Animal> getAll() {
return new ArrayList<Animal>();
}
}
class Cat extends Animal {
public static List<Cat> getAll() {
return new ArrayList<Cat>();
}
}
类动物{
公共静态列表getAll(){
返回新的ArrayList();
}
}
猫科动物{
公共静态列表getAll(){
返回新的ArrayList();
}
}
将第2行更改为:
public static List<? extends Animal> getAll() {
public static list粘贴这些代码,您是如何调用这些方法的。您真的希望getAll方法是静态的吗?静态方法不会被继承覆盖。我甚至没有尝试过对它们进行envoke,因为我在写这些行时遇到了错误。