我正在做一个关于类继承的实用大学工作。我的问题是三个子类中的两个有一个公共方法,它在第三个中不存在,所以我不知道是否最好在不实现的情况下将这个方法添加到超类中(这是一个 void 方法)或分别在两者中实现它类。最好的实施方式是什么?
问问题
69 次
5 回答
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 {
}
于 2013-04-10T19:08:38.643 回答
4
您不应该仅仅在实现和重用上使用继承作为标准。如果您在您正在建模的领域的上下文中确实具有真正的“是”关系,请选择它。共享您尝试建模的域以获得更具体的帮助。
于 2013-04-10T19:11:55.237 回答
1
遵循 Pangea 的思想,如果关系不是“是” ,请始终尝试支持组合而不是继承。
于 2013-04-10T20:26:31.897 回答
1
最好的做法是为两个基类添加另一个抽象,并为所有子类添加一个通用抽象。
例如:
Dog
Cat
Bird
Dog -> FourLegs -> Animal
Cat -> FourLegs -> Animal
Bird -> Animal
“->”可以是扩展或实现(抽象类或接口)
在任何情况下都不要仅仅因为它方便而给鸟添加四条腿:)
于 2013-04-10T19:13:49.540 回答
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.
于 2013-04-10T19:13:53.343 回答