본문 바로가기
스프링

SPRING(8) - 객체 지향의 4대특성 4

by 고유빙글 2021. 7. 29.

다중 상속과 자바

 

자바는 다중상속을 지원하지 않는다.

이렇게 보면 그 이유를 알 수 있다. 인어에게 수영하라는 메소드를 줄때, 사람처럼 수영을 해야할까 물고기처럼 수영을 해야할까. 이를 다중 상속의 다이아몬드 문제라고 한다. 결국 다중 상속은 득실관계에서 실이 더 많았기에 자바와 C#은 다중상속을 포기했다. 자바는 인터페이스를 도입해 다중 상속의 득은 취하고 실은 버렸다고 한다.

 

이에 대해 알아보자.

 

상속

상속관계 : 하위 클래스 is a kind of 상위 클래스

해석 : 하위 클래스는 상위 클래스의 한 분류다.

예제 : 고래는 동물의 한 분류다.

 

이렇게 정리한다면

 

인터페이스 

인터페이스 관계 : 구현 클래스 is able to 인터페이스

해석 : 구현 클래스는 인터페이스 할 수 있다.

예제 : 고래는 헤엄칠 수 있다.

 

이를 이전에 본 상속도에 적용하면, 

이러하다.