Java设计问题:从多个抽象类继承

时间:2016-03-07 17:34:14

标签: java abstract

我在Java中遇到了设计问题。我有

  • 抽象类Feature,代表功能(机器学习)和
  • 一个抽象类Normalizable,它继承自Feature并表示可以规范化的功能。

具体功能可以是FeatureNormalizable的实例。

我想介绍一个名为Probablity的抽象类,它继承自Feature并表示可以进行某种概率计算的功能。

实际功能应该是Feature的实例(不可规范且无概率),或者它应该是NormalizableProbability或两者的实例。

现在的问题是,实际功能无法继承NormalizableProbability

我该如何解决这个问题?我认为使用接口不是解决方案,因为所有提到的类都包含实现。

1 个答案:

答案 0 :(得分:1)

您可以创建课程NormalizablePrbability.java使用Composition并将Probability.javaNormalize.java作为新创建的课程NormalizablePrbability.java中的字段。您可以从NormalizablePrbability.java扩展Feature.java并覆盖方法,在每种方法中,您都可以提供Probability.javaNormalize.java的组合功能。

现在,您可以拥有可以从Feature.javaNormalize.javaProbability.javaNormalizablePrbability.java

延伸的具体课程