类继承的最佳设置

时间:2013-04-10 19:06:52

标签: java inheritance subclass

我正在做关于类继承的实用大学工作。我的问题是三个子类中有两个有一个常见的方法,它不存在于第三个子类中,所以我不知道是否最好在没有实现的情况下在超类中添加此方法(它是一个void方法)或者在两者中分别实现它类。最好的方法是什么?

5 个答案:

答案 0 :(得分:7)

您可以尝试以下内容:

-- Base
    -- Base With Common Method
         -- Class 1
         -- Class 2
    -- Class 3

在Java中,它将类似于:

public class A {
}
public class B extends A {
    public void commonMethod() { }
}
public class Class1 extends B {
}
public class Class2 extends B {
}
public class Class3 extends A {
}

答案 1 :(得分:4)

您不应仅仅将继承用于实现和重用作为标准。如果您在建模的域的上下文中确实存在真正的“是”关系,请选择它。分享您尝试建模的域名以获得更具体的帮助。

答案 2 :(得分:1)

最好的办法是为两个基类添加另一个抽象,并为所有子类提供一个通用抽象。

例如:

      Dog
      Cat
      Bird

      Dog -> FourLegs -> Animal 
      Cat -> FourLegs -> Animal 
      Bird -> Animal

“ - >” 中可以是扩展或实现(抽象类或接口)

在任何情况下都不要因为方便而在鸟类上添加四条腿:)

答案 3 :(得分:1)

您可以在基类中添加该方法。如果子类实现它,子类将重载此方法,否则仅使用基类方法。

Smthng like:
Base class: methoda()
SubClass1: methoda() --overloaded
SubClass2: methoda() --second overloaded version
SubClass3: no Implementation --used methoda() of baseclass as no implementation given.

答案 4 :(得分:1)

根据Pangea的想法,如果关系不是“是一个”,那么总是尝试支持组合优于继承