Java中类型层次结构的效率

时间:2012-03-24 15:18:23

标签: java oop

我有一个父类,现在是抽象类,在第二级有四个不同的子类。对于其中一个子类,我想创建第三级子类,它们从第二级模拟两个子类。我不希望那些将成为它们的父类的类是抽象的或接口,我认为只是使它具体化并不会非常有效。

编辑:有效率,我的意思是在给定的情况下,上述选项是否有其他选择?

有没有其他有效的方法来表示这两个类在二级基本相同?因为解释有点含糊不清,所以这是一张图片:http://i.imgur.com/mvCAS.png

3 个答案:

答案 0 :(得分:1)

你的问题不太清楚。

  

我不希望那些将成为它们的父级的类是抽象的或接口,但我认为只是使它具体化并不会非常有效。

好吧,如果你既不想要一个抽象类,一个具体的类,也不想要一个接口,那么我恐怕你运气不好。 Java在声明/定义类型时没有别的选择。

此外,Java不允许多重继承。这意味着如果您希望 Column Major 成为 ColumnMajor Table Table With Deactivate Cell 的子类,则其中至少有一个必须是interface。而且由于Java接口只能扩展其他接口,这意味着 Table 也必须是interface

答案 1 :(得分:1)

在我看来,您正在混合功能分类的概念。你看,继承不是一切的正确工具。尝试制作一些类组合而不是子类。例如,“停用”单元格似乎是表的功能,也许可以是一个单独的类,可以在表类中组合以更改表的行为方式。看一下策略状态模式。

答案 2 :(得分:0)

通常,最好通过委派配置一个类,而不是派生更多的子类。过度使用继承是oo初学者的典型行为。

在您的情况下,方法可以是创建一个配置实际类集的不同行为的类。 如果您设计的这样的类允许可链接,那么您将获得一个非常灵活,可扩展的架构