손목시계 추가하기와 다중 상속
다중 상속이란?
한 자식 클래스가 부모를 2개 이상 동시에 상속받는 것
- 예:
class C extends A, B
Java는 다중 상속을 지원하는가?
NO
- Java에는 (클래스) 다중 상속 개념이 없음
다중 상속의 문제점은?
같은 부모(조상)를 여러 경로로 중복 상속하게 됨
- 최상위 부모를 여러 번 상속받는 클래스가 생김 (다이아몬드 문제)
- 그래서 일반적으로 다중 상속은 사용하지 않는 것이 좋음
Java에서 다중 상속을 흉내 내는 방법은?
인터페이스를 여러 개 구현(implements)
- 클래스는 하나만 상속(
extends)할 수 있지만, 인터페이스는 여러 개 구현 가능 (implements A, B) - 인터페이스는 (전통적으로) 상태·구현이 없어 다이아몬드 문제를 피할 수 있음