我有一个类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