gpt4 book ai didi

Java 集合 : List tiger = new ArrayList() WRONG

转载 作者:行者123 更新时间:2023-11-29 09:41:53 24 4
gpt4 key购买 nike

Tiger 类是从 Animal 类扩展而来的。

当我申报时:List<Animal> tiger = new ArrayList<Tiger>(); .我会在编译时出错。

但是,我认为这条线适用于多态性。谁能帮我解释一下。

最佳答案

你做不到

List<Animal> tiger = new ArrayList<Tiger>();

在 Java 中。左边的通用类型必须完全等于(或者可能不必相等,如果游戏中有通配符 - ? extends T? super T)到通用类型在右边。

如果有可能,那么就不可能将新的 Lion 添加到声明为 Animal 列表的列表中 - 那将毫无意义。

你可以做的是:

List<Animal> tigers = new ArrayList<Animal>();
tigers.add(new Tiger());

(所有动物家族,包括老虎)

或:

List<? extends Animal> tigers = new ArrayList<Tiger>();
tigers.add(new Tiger()); // Adding is immpossible now - list can be read only now!

(仅限 Animal 的子类)- 列表现在只能读取!

关于Java 集合 : List<Animal> tiger = new ArrayList<Tiger>() WRONG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9901026/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com