我正在研究继承和组合之间的区别。大家都称赞组合胜过继承,那么问题是我们如何做出选择?另外,如果我们根本不使用继承,那么根据 OOP 原则我们会错过什么?
最佳答案
这实际上取决于数据的结构。继承用于“is a”关系,而组合用于“has a”关系。
例如,如果您正在看汽车。
继承:“汽车”下会有“丰田”、“本田”、“宝马”,因为它们是汽车的类型。
组成:“汽车”下会有“发动机”、“车轮”、“门”,因为它们是构成汽车的部件。
“丰田”、“本田”、“宝马”不是汽车的一部分,就像“发动机”、“车轮”、“门”不是汽车的类型一样。
关于java - 继承和组合如何选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61049120/