【发布时间】:2017-09-13 17:11:08
【问题描述】:
我对 Java 很陌生,我想知道这实际上意味着什么:
List<Integer> list = new ArrayList<Integer>(); //Example 1
为了将此问题与其他问题区分开来,我阅读了有关多态性以及示例 1 和示例 2 之间的区别的帖子,并且我了解示例 1 允许“编程到接口”。我还了解到,通过示例 1,可以轻松地将 list 更改为 LinkedList 而不会影响其余代码。
ArrayList<Integer> list = new ArrayList<Integer>(); //Example 2
但我想知道示例 1 的实际含义。它会创建一个新列表吗?还是它会创建一个新的 ArrayList?结果对象是否具有列表的属性?或者生成的对象是否具有 ArrayList 的属性?我可以实现 ArrayList 在列表上使用的方法而不会出现编译错误吗?
这是我第一次发布问题,所以如果我可以做出任何改进,请告诉我。
【问题讨论】:
-
首先ArrayList是List的具体实现,example1新建一个ArrayList类型的List(具体实现)。变量“list”具有 ArrayList 的属性/方法。