【发布时间】:2018-12-02 01:01:56
【问题描述】:
假设,我有一个 Address 类,它有多个参数,即街道号码、地址行 1、地址行 2、国家等。现在,我有一个 Person 类,它有多个参数,即姓名、电子邮件,每个人都有一个地址。
现在,我应该使用扩展了 Address 类的 Person 类,或者我应该在 Person 类中使用一个地址参数。哪种方法更好?为什么?
【问题讨论】:
标签: java
假设,我有一个 Address 类,它有多个参数,即街道号码、地址行 1、地址行 2、国家等。现在,我有一个 Person 类,它有多个参数,即姓名、电子邮件,每个人都有一个地址。
现在,我应该使用扩展了 Address 类的 Person 类,或者我应该在 Person 类中使用一个地址参数。哪种方法更好?为什么?
【问题讨论】:
标签: java
您应该在 Person 类中定义一个成员变量。这称为作曲。 继承通常应用于两个类之间存在相似性的情况。主要是从普通班到专业班。例如由 Dog 类继承的 Animal 类。
换句话说,您可以通过简单地应用 HAS A 与 IS A 关系来区分在何处使用 composition 与 inheritance。
例如
【讨论】:
Address address;
您应该有一个 Address in Person 类型的成员(您称之为参数)。
只有当你说“一个人是一个地址……”时,继承才合适。这不是这里的情况。
一般而言,您应该更喜欢组合而不是继承,因为您的设计会更加灵活。
【讨论】: