0

클래스 B와 C를 확장해야하는 클래스 A가 있는데 둘 다 제 3 자에 의해 제공되며 해당 클래스를 제어 할 수 없습니다. 자바는 다중 상속을 지원하지 않기 때문에. 인터페이스를 사용하는 것은 기본 클래스의 구현을 상속 받기를 원하고 내 클래스에 코드를 복사하고 싶지 않기 때문에 필자의 경우에는 도움이되지 않을 것입니다. 그렇지 않으면 앞으로의 모든 변경 사항을 알아야 할 것입니다.자바 : 다중 상속에 대한 대안

이 필요를 달성하는 가장 좋은 방법은 무엇입니까?

모든 제안을 주시면 감사하겠습니다.

+0

계승 대신 구성을 사용하지 않는 이유는 무엇입니까? A와 C가있는 것 – 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()'메소드를 가질 수 있기 때문에'C '가 필요한 사람에게'a'를 전달해야한다면'a.asC()'를 넘겨 주어야합니다. – ZhongYu