0

我有一个类A,它必须扩展由第三方提供的类B和C,而我没有它们的控制权。由于Java不支持多继承。使用接口不会对我有帮助,因为我确实想继承基类的实现,而且我不想将他们的代码复制到我的类中,或者我需要知道所有即将发生的更改。Java:替代多重继承

完成此需求的最佳方法是什么?

所有建议将不胜感激!

+0

为什么不使用组合而不是继承?在A中有一个C和一个B – nachokk

回答

1
class A 

    class B2 extends B 

     inherit B's stuff 

    class C2 extends C 

     inherit C's stuff 

    B2 b2 = new B2(); 
    C2 c2 = new C2(); 
    // or use anonymous classes 

    A has access to everything in B2 and C2, 
    therefore A has access to B and C's inheritable assets. 
+0

感谢您的回复!这与我所做的有点相似。我有A类延伸B和C类作为内部类,但它不能很好地工作,因为我实际上需要A类是B,并且是C.这甚至可能吗? –

+1

你可以在'class A'中使用'C asC()'方法,所以如果你需要将'a'传递给需要''C'的人,请将'a.asC()'传递给它。 – ZhongYu