我有一個類A,它必須擴展由第三方提供的類B和C,而我沒有它們的控制權。由於Java不支持多繼承。使用接口不會對我有幫助,因爲我確實想繼承基類的實現,而且我不想將他們的代碼複製到我的類中,或者我需要知道所有即將發生的更改。Java:替代多重繼承
完成此需求的最佳方法是什麼?
所有建議將不勝感激!
我有一個類A,它必須擴展由第三方提供的類B和C,而我沒有它們的控制權。由於Java不支持多繼承。使用接口不會對我有幫助,因爲我確實想繼承基類的實現,而且我不想將他們的代碼複製到我的類中,或者我需要知道所有即將發生的更改。Java:替代多重繼承
完成此需求的最佳方法是什麼?
所有建議將不勝感激!
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.
感謝您的回覆!這與我所做的有點相似。我有A類延伸B和C類作爲內部類,但它不能很好地工作,因爲我實際上需要A類是B,並且是C.這甚至可能嗎? –
你可以在'class A'中使用'C asC()'方法,所以如果你需要將'a'傳遞給需要''C'的人,請將'a.asC()'傳遞給它。 – ZhongYu
爲什麼不使用組合而不是繼承?在A中有一個C和一個B – nachokk