多态性:探索“List list = new ArrayList”与“ArrayList list = new ArrayList”
使用 Java 集合时,一出现常见问题:您应该声明具有特定实现类型(例如 ArrayList)还是接口类型(例如 List)的变量?虽然这两种方法在理论上都是有效的,但使用接口 (List) 相对于具体实现 (ArrayList) 具有明显的优势。
使用“List list = new ArrayList”的原因
示例:
考虑以下内容code:
<code class="java">List<String> names = new ArrayList<>(); names.add("John"); names.add("Mary");</code>
在此示例中,变量名称被声明为字符串列表。它被分配了一个 ArrayList 实例,这是 List 接口的一种实现。但是,由于 name 被声明为 List,因此如果需要,我们可以轻松地将 ArrayList 替换为其他实现,例如 LinkedList。
结论
使用具体实现时类型(例如 ArrayList)可能看起来很简单,采用基于接口的方法(例如 List)在解耦、灵活性和面向未来方面提供了显着的优势。通过采用多态性,您可以使代码能够优雅地适应数据结构和需求的变化。
以上是为什么使用'List list = new ArrayList”而不是'ArrayList list = new ArrayList”?的详细内容。更多信息请关注PHP中文网其他相关文章!