[기본 개념] 2 | (1.3) 단일상속, Object 클래스
1 상속의 정의와 장점
2 클래스간의 관계 - 포함관계
3 클래스간의 관계 결정하기
4> 단일상속(single inheritance)
5> Object클래스 - 모든 클래스의 조상
4 단일상속(single inheritance)
자바에서는 오직 단일 상속만을 허용한다. 그래서 둘 이상의 클래스로부터 상속 받을 수 없다.
다중상속을 허용하면 여러 클래스로부터 상속받을 수 있기 때문에 복합적인 기능을 가진 클래스를 쉽게 작성 할 수 있다는 장점이 있지만, 클래스간의 관계가 매우 복잡해진다는 것과 상속받은 멤버간의 이름이 같은 경우 구별할 수 있는 방법이 없다는 단점을 가지고 있다.
만일 다중상속을 허용해서 TVCR클래스가 TV클래스와 VCR클래스를 모두 조상으로 하여 두 클래스의 멤버들을 상속받는다고 가정해보자.
TV클래스에도 power( )라는 메서드가 있고, VCR클래스에도 power( )라는 메서드가 있을 때 자손인 TVCR클래스는 어느 조상클래스의 power( )를 상속받게 되는 것일까?
이것을 해결하는 방법은 조상 클래스의 메서드의 이름이나 매개변수를 바꾸는 방법 밖에 없다. 이러면 그 조상 클래스의 power( )메서드를 사용하는 모든 클래스들도 변경을 해야 하므로 그리 간단한 문제가 아니다.
이 때문에 자바에서는 다중상속의 장점을 포기하고 단일상속만을 허용한다.
단일 상속은 클래스 간의 관계가 보다 명확해지고 코드를 더욱 신뢰할 수 있게 만들어 준다.
5. Object클래스 - 모든 클래스의 조상
Object클래스는 모든 클래스의 최상위에 있는 조상클래스이다. 모든 클래스들은 자동적으로 Object클래스로부터 상속받게 한다.
만일 다음과 같이 다른 클래스로부터 상속을 받지 않는 TV클래스를 정의하였다고 하자.
class Tv {
. . .
}
위의 코드를 컴파일 하면 컴파일러는 위의 코드를 다음과 같이 자동적으로 'extends Object'를 추가하여 Tv클래스가 Object클래스로부터 상속받도록 한다.
class Tv extends Object {
. . .
}
이처럼 조상클래스의 조상클래스를 찾아 올라가다 보면 결국 마지막 최상위 조상은 Object클래스일 것이다.
출처 | Java의 정석 (남궁 성)
'💠프로그래밍 언어 > Java' 카테고리의 다른 글
[기본 개념] 2 | (3.1) Package, Import 문 (0) | 2021.11.18 |
---|---|
[기본 개념] 2 | (2.1) 오버라이딩, Super( ) (0) | 2021.11.18 |
[기본 개념] 2 | (1.2) 클래스 간 관계 (0) | 2021.11.18 |
[기본 개념] 2 | (1.1) 상속 (0) | 2021.11.18 |
[기본 개념] 1 | (5.1) 변수의 초기화 (0) | 2021.09.01 |