请帮我解决以下问题:
Cat
必须扩展Animal
(保持继承); Animal.getAll()
必须归还所有动物(猫,狗等),Cat.getAll()
必须只返回猫(不要改变签名)。我在第8行尝试了失败,错误The return type is incompatible with Animal.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>();
}
}
答案 0 :(得分:1)
将第2行更改为:
public static List<? extends Animal> getAll() {
它会起作用。 有关详细信息,请参阅Java Wildcards in Generics