단일 상속
다른 객체지향언어인 c++에서는 여러 조상 클래스로부터 상속받는 것(다중 상속)이 가능.
자바에서는 둘 이상의 클래스로부터 상속을 받을수 없다. (단일 상속)
비중이 높은 클래스 하나만 상속관계로, 나머지는 포함관계로 한다.
class TvDVD extends Tv, DVD { //에러! 조상은 하나만 허용된다.
...
}
다중상속을 안쓰는 이유
Tv클래스에도 power() 이라는 메서드가 있고, DVD클래스에도 power()라는 메서드가 있다면
자손인 TvDVD클래스 내에서 선언부(이름과 매개변수)만 같고 서로다른 내용의 두 메서드를
구별하기 힘들다는 단점이 있다. 따라서 자바에서는 단일상속만 허용!
Object 클래스
모든 클래스의 조상이다.
부모가 없는 클래스는 자동적으로 Object 클래스를 상속받게 된다.
class tv { // 다른 클래스로부터 상속을 받지 않는 Tv클래스를 정의
...
}
위의 코드를 컴파일 하면 자동적으로 'extends Object'를 추가한다.
--------------------------------------------------------------컴파일 후
class Tv extends Object { //extends Object가 자동추가됨
...
}
모든 클래스는 Object클래스에 정의된 11개 메서드를 상속받는다.
그래서 자바의 모든 클래스들은 Object클래스에 정의된 멤버들을 사용할 수 있다.
ex) toString(), equals(Object obj), hashCode() 등등..
'Java' 카테고리의 다른 글
자바의 정석 ( 패키지 / 클래스 패스 / import문 / static import문 ) (0) | 2023.03.20 |
---|---|
자바의 정석 (super / super() ) (0) | 2023.03.19 |
자바의 정석 ( 오버로딩과 오버라이딩 헷갈리지 말자! ) (0) | 2023.03.17 |
자바의 정석 (상속 / 포함 / 조상클래스 / 자손클래스 ) (0) | 2023.03.16 |
자바의 정석 ( 생성자 this() / 참조변수 this / 변수의 초기화 ) (0) | 2023.03.15 |