Java
[Java] 인터페이스 다중 구현 이해하기
데분몽굴
2024. 6. 17. 22:39
인터페이스 - 다중 구현
자바의 다중 상속 지원 X
자바는 다중 상속을 지원하지 않는다. 그래서 자바에서 `extens` 상속 대상은 하나만 선택할 수 있다.
자바에서 다중 상속을 지원하지 않는 이유는 다이아몬드 문제가 발생할 수 있기 때문이다.
위의 그림과 같이 `AirplaneCar` 입장에서 `move()`를 호출할 때 어떤 부모의 `move()`를 사용해야 할지 애매한 문제가 발생한다.
이러한 문제 때문에 자바에서는 다중 상속을 지원하지 않지만, 그에 반해 다중 구현은 지원하고 있다 .
**다중 구현은 허용**
다중 상속은 불가하지만 다중 구현은 가능한 이유는 무엇일까? 그 이유는 인터페이스가 순수 추상 메서드로 구현되어 있기 때문이다.
`InterfaceA`와 `InterfaceB`모두 `methodCommon()`을 가지고 있다. 그리고 `Child`는 두 인터페이스를 모두 모두 구현한 상태이다.
인터페이스는 구현을 가지지 않기 때문에 `Child`는 `methodCommon()`을 호출하게 된다. 결과적으로 두 부모 중에 고민할 필요 없이 인터페이스들을 구현한 `Child`에 있는 `methodComon()`을 사용하면 된다.