【问题标题】:extends or taking parameter, which approach is better & why扩展或采用参数,哪种方法更好以及为什么
【发布时间】:2018-12-02 01:01:56
【问题描述】:

假设,我有一个 Address 类,它有多个参数,即街道号码、地址行 1、地址行 2、国家等。现在,我有一个 Person 类,它有多个参数,即姓名、电子邮件,每个人都有一个地址。

现在,我应该使用扩展了 Address 类的 Person 类,或者我应该在 Person 类中使用一个地址参数。哪种方法更好?为什么?

【问题讨论】:

    标签: java


    【解决方案1】:

    您应该在 Person 类中定义一个成员变量。这称为作曲继承通常应用于两个类之间存在相似性的情况。主要是从普通班到专业班。例如由 Dog 类继承的 Animal 类。 换句话说,您可以通过简单地应用 HAS AIS A 关系来区分在何处使用 compositioninheritance

    例如

    • 狗是动物。
    • 此人有地址

    【讨论】:

    • 嘿 Nishant - 感谢您的解释。现在,如果情况是 - Person 类扩展了 Address 类或 Person 类应该有一个参数,如字符串地址,那么稍后(字符串地址)将是一种更好的方法,对吧?
    • 不,Person 和 Address 类将是独立的类,没有继承另一个。相反,Person 类中将有一个 Address 类型的成员变量。例如。 Address address;
    • 感谢您的澄清:)
    • 欢迎。如果它澄清了您的疑问,请接受答案。
    【解决方案2】:

    您应该有一个 Address in Person 类型的成员(您称之为参数)。

    只有当你说“一个人是一个地址……”时,继承才合适。这不是这里的情况。

    一般而言,您应该更喜欢组合而不是继承,因为您的设计会更加灵活。

    【讨论】:

    • 嘿多纳特 - 感谢您的解释。
    猜你喜欢
    • 1970-01-01
    • 2013-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-08
    • 2021-03-04
    • 2013-01-28
    • 2021-08-03
    相关资源
    最近更新 更多