【发布时间】:2015-07-22 17:48:05
【问题描述】:
我知道不能从这样的接口创建对象:
List list2 = new List(); // error.
当我使用 Arrays.asList() 时,我很困惑,因为这个函数返回 List 并且下面的代码完美运行:
List list1 = Arrays.asList("a","b","c"); // works perfectly
这个等式的右边返回列表。那么代码就变成了 List list1=new List();尽管右侧返回一个接口,但我不明白这怎么可能以及这段代码如何工作。你能解释一下吗? 提前致谢
【问题讨论】:
-
那么代码就变成了List list1=new List();号
-
你不应该从数学上看它,还有更多。不,它不是被实例化的接口。在此处阅读有关
polymorphism的更多信息:docs.oracle.com/javase/tutorial/java/IandI/polymorphism.html -
你刚才问了一个问题,接受的答案也掩盖了你的困惑:here
标签: java arrays collections