gpt4 book ai didi

java - 我应该针对接口(interface)还是抽象基类编程?这句话到底是什么意思?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:52:38 25 4
gpt4 key购买 nike

在面向对象的编程中,我读到你应该针对接口(interface)而不是实现进行编程,但它们是否意味着文字接口(interface)(根本没有共享代码)?

除了这个“接口(interface)”中有所有子类都应该有的变量之外,是否可以对一个本应是接口(interface)的抽象基类进行编程?跨子类复制变量会带来不便,因为如果我更改其中一个子类中的一个变量的名称,我将不得不更改所有子类中该变量的名称。

遵循“针对接口(interface)而不是实现编程”的原则,这样可以吗,或者您会在抽象基类之上创建另一个接口(interface)并针对该接口(interface)编程吗?

最佳答案

你想针对接口(interface)编程,因为这意味着更低的耦合度。请注意,Java 中的接口(interface)更加灵活,因为它们可以由类层次结构中任何位置 的类实现,这与抽象类不同(作为单一继承的结果)。这种灵 active 意味着您的代码可以更高程度地重用。

“针对接口(interface)而非实现编程”的重点在于上述一般原则,即使它们可能会造成一些小的不便

此外,即使您针对一个接口(interface)编程,如果您愿意,您始终可以通过抽象类的方式实现所述接口(interface)(或其中的一部分),同时实现低耦合和代码可重用性。

对抽象类甚至具体类进行编程总是没问题的,但是最好避免这种情况。

This discussion might be helpfulthis oneof course this one .

关于java - 我应该针对接口(interface)还是抽象基类编程?这句话到底是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30084370/

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