优先组合而不是继承
是很流行的一句话。我读了几篇文章,最后每篇文章都说
当类之间存在纯 IS-A 关系时使用继承。
这篇文章的一个例子:
这里Apple和Fruit之间有明确的 IS-A 关系,即 Apple IS-A Fruit,但作者也将其显示为 Apple HAS-A Fruit(组合)以显示使用继承实现时的陷阱。
我在这里变得有些困惑,声明的含义是什么
当类之间存在纯 IS-A 关系时使用继承。
使用组合而不是继承是否意味着即使存在纯 IS-A 关系也始终尝试应用组合 ,并且仅在组合没有意义的情况下保留继承?