java - 继承和组合如何选择?

标签 java oop inheritance composition

我正在研究继承和组合之间的区别。大家都称赞组合胜过继承,那么问题是我们如何做出选择?另外,如果我们根本不使用继承,那么根据 OOP 原则我们会错过什么?

最佳答案

这实际上取决于数据的结构。继承用于“is a”关系,而组合用于“has a”关系。

例如,如果您正在看汽车。

继承:“汽车”下会有“丰田”、“本田”、“宝马”,因为它们是汽车的类型。

组成:“汽车”下会有“发动机”、“车轮”、“门”,因为它们是构成汽车的部件。

“丰田”、“本田”、“宝马”不是汽车的一部分,就像“发动机”、“车轮”、“门”不是汽车的类型一样。

关于java - 继承和组合如何选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61049120/

相关文章:

java - 如何避免继承java类的复制构造函数中的instanceof

java - 如何在 Windows 10 环境中从 Java 运行在 Ubuntu 上用 Bash 编写的 shell 脚本?

java - 当我们调用函数ZipEntry.getSize时,库是否首先在内存中解压缩文件?

java - Apache Commons Email 和 JBOSS SSL - 发送电子邮件失败并出现 SunCertPathBuilderException

python - python中的字段继承访问

javascript - javascript/node 中的单元测试嵌套对象

c++ - 嵌套指针而不是继承

java - 在java中禁用按键监听器

java - 方法重载可以被认为是Java中描述多态性的一种方式吗?

python - 一个实例如何包含其他类的多个实例?