在使用集合时使用超类创建子类对象的原因是什么?

时间:2015-03-26 12:30:44

标签: java list collections

我经常在许多网站上看到,在使用Java中的集合时,导师会将代码编写为:

List al = new ArrayList();
List li = new LinkedList();

而不是

ArrayList al = new ArrayList();
LinkedList li = new LinkedList();

有没有具体的理由说明为什么这样写?它比以下写的更有优势吗?

1 个答案:

答案 0 :(得分:4)

声明接口类型的变量而不是实现类的类型的优点是灵活性。您可以轻松替换实现接口的实例,而无需更改代码。

这是一般原则,并非特定于Collections框架。