단일 상속(Single Inheritance)

java는 단일 상속만 허용한다

 

다중 상속 에러 예시

class TvDVD extends Tv, DVD { // 에러 발생
    // ...
}

 

다중 상속 문제점

TvDVD는 부모가 Tv와 DVD로 2개이다

Tv와 DVD에 void power() {}라는 메서드가 동시에 있을 경우 어떤 것을 상속 받아야하는지 알 수 없다 => 충돌 문제

[이름(power)이 같고 내용({ })이 다를 경우]

 

다중 상속 해결방법

1. 인터페이스

   인터페이스의 다형성

 

2. 비중이 높은 클래스 하나만 상속관계로, 나머지는 포함관계로 한다

Tv 클래스가 비중이 높은 경우, Tv 클래스는 상속으로, DVD 클래스는 포함관계로 한다

(단, DVD가 가지고 있는 메서드를 호출해줘야 한다)

반응형

+ Recent posts