在使用集合时使用它的 super-class 创建 sub-class 的对象背后的原因是什么?

What is the reason behind creating objects of sub-class using its super-class while using collections?

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

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

而不是

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

这样写有什么具体原因吗?它比下面写的有什么优势吗?

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

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