Java의 정석
단일 상속(single inheritance)
donghyeob.k
2022. 3. 28. 20:55
단일 상속(single inheritance)
자바에서는 단일 상속만을 허용하기에 둘 이상의 클래스로부터 상속을 받을 수 없다. 예를 들어 Tv 클래스와 DVD 클래스가 있을 때 이 두 클래스로부터 상속을 받는 TvDVD 클래스를 작성할 수 없다.
class TvDVD extends Tv, DVD { // Error
...
}
다중 상속을 허용하면 여러 클래스로부터 상속받을 수 있기 때문에 복합적인 기능을 가진 클래스를 쉽게 작성할 수 있지만 클래스 간의 관계가 매우 복잡해진다는 것과 서로 다른 클래스로부터 상속받은 멤버 간의 이름이 같은 경우 구별할 수 있는 방법이 없다는 단점을 가지고 있다.
자바에서는 다중상속의 이러한 문제점을 해결하기 위해 다중 상속의 장점을 포기하고 단일 상속만을 허용한다. 단일 상속이 하나의 조상 클래스만을 가질 수 있기 때문에 다중 상속에 비해 불편한 점도 있지만, 클래스 간의 관계가 보다 명확해지고 코드를 더욱 신뢰할 수 있게 만들어 준다는 점에서 다중 상속보다 유리하다.