gpt4 book ai didi

oop - 何时优先考虑继承而不是组合

转载 作者:行者123 更新时间:2023-12-04 09:34:59 27 4
gpt4 key购买 nike

这个问题似乎是重复的,但事实并非如此。我用谷歌搜索,公共(public)汽车无法获得概念上的清晰度。有很多动物,汽车类的例子。但是,我想了解基本逻辑。
通常说,优先组合胜过继承,因为它提供了许多优点。在这种情况下,为什么提供继承作为 OOP 的主要概念之一。
我的问题是什么时候更倾向于继承而不是组合?

最佳答案

如果你正在使用一种没有多重继承的语言,你应该 总是 支持组合而不是继承。

在没有多重继承的语言(Java、C#、Visual Basic.NET)中,引入一个继承层次结构会自动将您排除在所有其他替代继承层次结构之外。在这些语言中,继承只会把你锁在里面。

使用组合,你可以做所有你可以用继承做的事情,也可以做一些你不能用继承做的事情,例如,模拟多重继承。

从任何客户的角度来看,让一个类实现多个接口(interface)本质上是模拟多重继承。

组合具有多个依赖项的类本质上解决了从多个基类“继承”以实现可重用性的问题。

继承最初是作为一个概念包含在 OOP 中的,因为 OOP 最初是根据多重继承来描述的。参见例如Object-Oriented Software Construction ,它用 Eiffel 解释了 OOP - 一种具有多重继承的编程语言。

关于oop - 何时优先考虑继承而不是组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32308276/

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