C# 什么是';继承上的聚合';?

C# 什么是';继承上的聚合';?,c#,inheritance,aggregation,C#,Inheritance,Aggregation,可能重复: 该网站的一位合作者告诉我,我需要“聚合优于继承”作为解决方案 我调查了每个人的想法,但“过度继承”呢?这是我的疑问。 有人能给我举个例子,说明这意味着什么 提前感谢。这意味着一个类应该包含另一个类的实例,而不是从中继承 继承的例子 聚合示例 我在课本上写了一篇关于这个问题的帖子。我发现了一个很有帮助的例子,联邦航空管理局根据飞机及其性能的分类对法规进行了细分。这意味着一个类应该包含另一个类的实例,而不是继承它 继承的例子 聚合示例 我在课本上写了一篇关于这个问题的帖子。我发现了一个

可能重复:

该网站的一位合作者告诉我,我需要“聚合优于继承”作为解决方案

我调查了每个人的想法,但“过度继承”呢?这是我的疑问。 有人能给我举个例子,说明这意味着什么


提前感谢。

这意味着一个类应该包含另一个类的实例,而不是从中继承

继承的例子 聚合示例
我在课本上写了一篇关于这个问题的帖子。我发现了一个很有帮助的例子,联邦航空管理局根据飞机及其性能的分类对法规进行了细分。

这意味着一个类应该包含另一个类的实例,而不是继承它

继承的例子 聚合示例
我在课本上写了一篇关于这个问题的帖子。我发现了一个有用的例子,联邦航空管理局根据飞机及其性能的分类方式对法规进行细分。

如评论中所述,这意味着在可能的情况下使用聚合而不是继承。有关解释见

更喜欢组合而不是继承,因为它更具可塑性/更容易在以后修改,但不要使用“始终组合”方法。通过组合,可以很容易地使用依赖项注入/设置器动态更改行为。继承更为严格,因为大多数语言不允许从多个类型派生


如果您想知道。

如注释中所述,这意味着尽可能使用聚合而不是继承。有关解释见

更喜欢组合而不是继承,因为它更具可塑性/更容易在以后修改,但不要使用“始终组合”方法。通过组合,可以很容易地使用依赖项注入/设置器动态更改行为。继承更为严格,因为大多数语言不允许从多个类型派生


如果您想知道的话。

聚合比使用继承更不容易出错(继承可能会导致代码维护困难,也很难理解)


此外,当您继承一个类时,您还可以将该类的所有公共成员公开给派生类的客户端(您可以改为使用聚合并将字段设置为私有以限制客户端对该对象的访问)

聚合比使用继承更不容易出错(继承可能导致代码难以维护,也难以理解)


此外,当您继承一个类时,您还可以将该类的所有公共成员公开给派生类的客户端(您可以改为使用聚合并将字段设置为私有,以限制客户端对该对象的访问)

可能:使用聚合而不是继承。对PrimiSuu问题的链接会有所帮助。并且考虑激活浏览器的英文拼写检查器。我认为亨克是正确的,它意味着更喜欢聚合而不是继承。如果有意义的话,尝试使用聚合而不是继承。更常见的是:“偏好组合而非继承可能是:使用聚合而不是继承。对PrimiSuu问题的链接会有所帮助。并且考虑激活浏览器的英文拼写检查器。我认为亨克是正确的,它意味着更喜欢聚合而不是继承。如果有意义的话,尝试使用聚合而不是继承。更常见的是:“偏好组合而非继承”。
class Engine
{
}

class vehicle extends Engine
{
}
class Engine
{
}

class Vehicle
{
Engine powerplant;
}