gpt4 book ai didi

java - "coding to an interface"的OOP原理?

转载 作者:行者123 更新时间:2023-12-01 18:54:02 25 4
gpt4 key购买 nike

我在某处读到我们应该像这样多态地实例化 ArrayList:

List myList = new ArrayList();

但是如果我使用

ArrayList myList = new ArrayList(); 

这种方法当我输入myList.(ctrl+space)时可以看到更多的方法

请指导我了解它们之间的差异(优缺点)

最佳答案

通常,您对接口(interface)进行编码的原因是,如果有意义的话,您可以更换稍后使用的具体类。例如,如果您因为发现内存碎片/重新分配问题而需要将 ArrayList 替换为 LinkedList。您只需更改构造对象的行,而不是其他代码,因为您编码为 List 接口(interface),并且这两个具体类都实现了 List

如果您需要使用List接口(interface)上没有的ArrayList方法之一,那么可以更改声明并使用该方法。那么,您只需要意识到,您将代码与特定的具体类 ArrayList 紧密耦合,而不是与广泛实现的接口(interface) List 紧密耦合。类别范围。

您的默认位置应该是向接口(interface)编写代码,因为这可以为您提供最大的灵 active /最小的耦合。但这并不意味着您在需要时不直接使用该类,只是您开始时要尽可能灵活。

关于java - "coding to an interface"的OOP原理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14796478/

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