gpt4 book ai didi

java - 想要了解在 Java 中声明对象的不同方式?

转载 作者:行者123 更新时间:2023-11-30 03:56:37 28 4
gpt4 key购买 nike

我试图了解以下两行代码之间的区别。

我知道其中一个是引用类型 List 是有原因的另一个引用类型 ArrayList 。但这真的重要吗,还是只是做同一件事的两种不同方式?

它不仅与这些类/接口(interface)有关,还与其他类/接口(interface)有关。我相信这是一个具有不同形式的对象的多态性特征,正确吗?

List a1 = new ArrayList();
ArrayList a1 = new ArrayList();

最佳答案

您不声明对象,而是声明变量(和成员)。

对象的界面存在差异。在第一种情况下,接口(interface)是 List,而在第二种情况下,接口(interface)是 ArrayList。底层对象是相同的,但您对它的访问权限不同。理论上,ArrayList 可以具有 List 没有的方法(尽管实际上我认为没有)。

使用List的优点是,您可以将底层对象更改为不同类型的列表(通过更改您创建的类型),而不会破坏与使用它的任何代码的约定。如果您将其声明为ArrayList,则如果您想更改底层实现,则必须更改您的约定。

披露:这是 my answer 的改编形式至 this question 。这基本上是同一个问题,但是当您使用您使用的术语进行查找时,您可能不会找到它。 :-)

关于java - 想要了解在 Java 中声明对象的不同方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23011996/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com