Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 对象类型列表和扩展类型的对象列表之间的区别_Java_Oop_Arraylist_Interface_Extends - Fatal编程技术网

Java 对象类型列表和扩展类型的对象列表之间的区别

Java 对象类型列表和扩展类型的对象列表之间的区别,java,oop,arraylist,interface,extends,Java,Oop,Arraylist,Interface,Extends,我经常遇到以下情况: List<Fooable> fooList; List傻瓜; vs List如果没有重复项 列表可以包含Cats和Dogs。您可以将猫和狗添加到列表中。这并不意味着它只能包含Animals 但是如果您有一个方法foo(List foo),则不能将列表传递给它。但是您可以将Cats、Dogs或Animals添加到传递的列表中 如果你有一个foo(列表),我相信答案在这里。或者在这里。至于这个结构的名称,它被称为“上界通配符”,例如,实际上,关于程序员的链接问题

我经常遇到以下情况:

List<Fooable> fooList;
List傻瓜;
vs


List如果没有重复项

列表可以包含
Cat
s和
Dog
s。您可以将猫和狗添加到列表中。这并不意味着它只能包含
Animal
s

但是如果您有一个方法
foo(List foo)
,则不能将
列表
传递给它。但是您可以将
Cat
s、
Dog
s或
Animal
s添加到传递的
列表中


如果你有一个
foo(列表),我相信答案在这里。或者在这里。至于这个结构的名称,它被称为“上界通配符”,例如,实际上,关于程序员的链接问题似乎是重复的。但Java链接并不是这么说的?
前者只匹配类型编号列表
这是一个任意限制吗?我会假设
foo(list foo)
会接受
列表
,因为Cat基本上是一个动物视图,答案是Java的泛型以一种非常反直觉的方式工作。
List<? extends Fooable> fooList;