본문 바로가기
back-end/JAVA

22) 단일상속(single inheritance)

by 모두의 향연 2021. 5. 31.
728x90
반응형

22) 단일상속(single inheritance)

 

1. 정의

-java는 단일(하나의 부모만 상속) 상속만을 허용한다(C++은 다중상속 허용)

 

2. 에러 예시

class TvDVD extends Tv, DVD{ //에러. 조상은 하나만 허용됨.

 …

}

 

3. 왜 쓰면 안될까?

다중상속

Tv클래스에 power() 메서드가 있고, DVD클래스에도 power()메서드가 있으면

TvDVD에서 power메서드 호출 시, 이름이 같아서 둘 중 어디 거를 써야 할지 모르는 상황이 발생한다(충돌)

 

4. 특징

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

예시

충돌 문제가 발생하기 때문에 Tv는 상속시키고 DVD는 포함시킨다.

주의할 점은 DVD에 들어있는 메서드 사용 시,

TvDVD클래스에서 메서드를 새로 생성해주고, 그 안에 DVD의 메서드를 호출하는 것이다.

 

 

*유튜브 남궁성 선생님의 `자바의 정석`을 참고하여 만들었습니다*
*자세히 보고 싶은 분들은 유튜브 가서 보시면 됩니다*

728x90
반응형