Java多重继承,消除重复代码

Java多重继承,消除重复代码,java,multiple-inheritance,Java,Multiple Inheritance,有库类B和C,它们都继承自类A。我有两个扩展B和C的类,即MyB和MyC A / \ B C / \ MyB MyC MyB&MyC共享许多通用代码,它们只是略有不同 我想消除重复代码,如何在java中做到这一点?在C++中,创建一个公共基类并将其常见的内容放在下面是可能的: A / \ B C \ / MyBase / \ MyB MyC 您可以使用: 使用通用代码创建一个新类MyCommon 在

有库类B和C,它们都继承自类A。我有两个扩展B和C的类,即MyB和MyC

    A
   / \    
  B   C 
 /     \
MyB   MyC
MyB
&
MyC
共享许多通用代码,它们只是略有不同

我想消除重复代码,如何在java中做到这一点?在C++中,创建一个公共基类并将其常见的内容放在下面是可能的:

    A
   / \  
  B   C 
   \ /
  MyBase
   / \
 MyB MyC
您可以使用:

  • 使用通用代码创建一个新类MyCommon
  • 在MyB和MyC中添加一个MyCommon实例,并将工作委托给MyCommon

一个类只能从一个类扩展。但是,您可以实现多个接口

不要将所有逻辑都放在这些类中,而是将所有公共逻辑都放在类
D
中。现在,使
MyC
MyB
每个成员都有一个
D
的实例。在Java中,您将使用以下内容:

  • B
    C
    的实例封装在“
    MyBase
    中的组合(模式)

  • 重构
    B
    C
    (如有必要)以公开单独的接口,例如
    IB
    IC

  • MyBase
    实现多个接口:
    IB
    IC
    ,通过“做正确的事情”将接口上的方法映射到内部
    B
    C
    实例

  • MyB
    MyC
    来实现适当的接口,并将调用映射到
    MyBase


  • 嘎击败了我。:)击败所有人…;-)+1、好东西。这是一篇很有帮助的文章,可能会很好地包含在回答中:哇,这是第一次,我在不到一分钟的时间内看到了+10次重复,因为回答是什么让我打开了灯泡…请查看以下内容: