코딩하는 몽구리

[Java] 인터페이스 다중 구현 이해하기 본문

Java

[Java] 인터페이스 다중 구현 이해하기

코딩구리 2024. 6. 17. 22:39

인터페이스 - 다중 구현

자바의 다중 상속  지원 X
자바는 다중 상속을 지원하지 않는다. 그래서 자바에서 `extens` 상속 대상은 하나만 선택할 수 있다. 

자바에서 다중 상속을 지원하지 않는 이유는 다이아몬드 문제가 발생할 수 있기 때문이다.


위의 그림과 같이 `AirplaneCar` 입장에서 `move()`를 호출할 때 어떤 부모의 `move()`를 사용해야 할지 애매한 문제가 발생한다. 
이러한 문제 때문에 자바에서는 다중 상속을 지원하지 않지만, 그에 반해 다중 구현은 지원하고 있다 .

**다중 구현은 허용**
다중 상속은 불가하지만 다중 구현은 가능한 이유는 무엇일까? 그 이유는 인터페이스가 순수 추상 메서드로 구현되어 있기 때문이다. 


`InterfaceA`와 `InterfaceB`모두 `methodCommon()`을 가지고 있다. 그리고 `Child`는 두 인터페이스를 모두 모두 구현한 상태이다. 
인터페이스는 구현을 가지지 않기 때문에 `Child`는 `methodCommon()`을 호출하게 된다. 결과적으로 두 부모 중에 고민할 필요 없이 인터페이스들을 구현한 `Child`에 있는 `methodComon()`을 사용하면 된다. 

 

'Java' 카테고리의 다른 글

final 변수와 상수  (0) 2024.03.30
자바 메모리 구조와 static  (0) 2024.03.25
캡슐화  (0) 2024.03.24
접근제어자  (0) 2024.03.24
제네릭과 컬렉션  (0) 2024.01.26