我发现了一个问题,询问类包含和类继承之间的区别。课程包含究竟意味着什么?我不认为我之前听过这个词。
答案 0 :(得分:2)
它的构成。一般来说,更喜欢组合而不是继承。使用继承来模拟is-a-relationship(Liskov原则),而不是使用,依赖或者实现.- / p>
答案 1 :(得分:2)
根据“is-a”和“has-a”(组合和继承)来考虑您的问题。请查看:Is-a和Has-a。
简而言之 - 如果你试图实现的类/对象“是”更通用的一个实例,那么它就是一个继承的例子,即:Apple(派生类)是Fruit(基类),保时捷是一辆汽车等。
如果你的对象“有”或“是”某事的一部分,那么它就是构图。示例:Car有一个Engine(Engine的对象包含在每个Car对象中),House有Windows和门等。
是否应该使用其中一个或另一个是不同类型讨论的主题。通常,您希望使用组合而不是继承,因为这样可以实现更灵活的代码。
答案 2 :(得分:0)
包含根据具体情况可能有不同的处理方式:
继承中所有形式的包含的主要概念差异之一是包含假定许多元素可以包含在实例级别的一个(父)元素中。相反,经典继承(隐式)假设一个对象可能只有一个扩展。换句话说,超级对象不能在许多扩展之间共享。
再次注意,它可能不是一个完整的清单,并且上述治疗之间存在显着的重叠以及一些不兼容性。