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