继承问题低级设计方法

时间:2011-05-19 11:14:42

标签: java oop polymorphism

假设我有像图中所示的类层次结构。假设我需要包含一个方法doThis(),该方法在类CD中具有不同的实现。但是类B不需要实现此方法。

我是否应该在类A中声明合同并在类B中提供一个空实现,或者让另一个抽象类X扩展A并通过{扩展{ {1}}和C

感谢Sample Class Diagram

4 个答案:

答案 0 :(得分:3)

请勿将其放入class A。使用由需要它的人实现的interface

答案 1 :(得分:2)

如果只有A的子类将使用该方法:
创建另一个扩展A的抽象类并添加方法。

如果您打算在不同的班级类型中实施该方法:
创建一个声明方法的接口,然后C,D也应该实现该接口。

答案 2 :(得分:1)

创建一个名为“doable”的界面。让你的C和D类实现这一点。

public interface Doable {
     public void doThis();
}

public class D implements Doable { /*implementations*/ }
public class C implements Doable { /*implementations*/ }

答案 3 :(得分:0)

如果可以避免,请不要将其放入A.

无法根据您提供给我们的信息确定最佳解决方案。它取决于类和方法的上下文和含义。