在使用集合时使用它的 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 框架。
我经常在许多网站上看到,在 Java 中处理集合时,导师将代码编写为:
List al = new ArrayList();
List li = new LinkedList();
而不是
ArrayList al = new ArrayList();
LinkedList li = new LinkedList();
这样写有什么具体原因吗?它比下面写的有什么优势吗?
声明接口类型变量而不是实现类型的优点 类 是灵活性。您无需更改代码即可轻松替换实现接口的实例。
这是一般原则,并不特定于 Collections 框架。