[JAVA] 다이아몬드 문제

뚜밍·2024년 4월 16일
0

JAVA

목록 보기
3/4
post-thumbnail

💡자바의 다이아몬드 문제란?

클래스 상속과 관련된 문제이다. 클래스 상속 다이어그램을 그릴 때 발생하는 다이아몬드 모양에서 이름을 따왔다.

만약 위 그림과 같이 자바에서 다중 상속을 지원했을 경우 C에서 move()를 호출할 때 둘 중 어떤 부모의 move()를 사용해야할지 애매한 문제가 발생함

  • 따라서 자바는 클래스의 다중상속을 지원하지 않음
    그러나! 자바는 인터페이스의 다중상속은 허용함

인터페이스의 메서드는 모두 추상 메서드로 구성되어져 있기 때문에 구현 클래스에서 직접 자체적으로 메서드를 구현해야한다.

  • 인터페이스를 다중으로 상속받아 특정 메서드를 호출 하더라도 인터페이스는 어차피 구현체가 없고, 메서드 오버라이딩이 우선순위를 가지기 때문에 직접 구현한 메서드를 호출하여 위의 문제가 해결됨
profile
성장하고싶운 갭알자 🥺🔥

0개의 댓글