단일 상속
- Java는 단일상속만을 허용
1 | class TvDVD extends Tv, DVD { |
2 | // 에러, 조상은 하나만 허용 |
3 | } |
- 비중이 높은 클래스 하나만 상속관계로, 나머지는 포함관계로 한다.
1 | class Tv { |
2 | boolean power; |
3 | int channel; |
4 | |
5 | void power() { power = !power; } |
6 | void channelUp() { ++channel; } |
7 | void channelDown() { --channel; } |
8 | } |
9 | |
10 | class DVD { |
11 | boolean power; |
12 | |
13 | void power() { power = !power; } |
14 | void stop() { /*내용생략*/ } |
15 | void rew() { /*내용생략*/ } |
16 | void ff() { /*내용생략*/ } |
17 | } |
1 | class TvDVD extends Tv { |
2 | DVD dvd = new DVD(); |
3 | |
4 | void play() { |
5 | dvd.play(); |
6 | } |
7 | void stop() { |
8 | dvd.stop(); |
9 | } |
10 | void rew() { |
11 | dvd.rew(); |
12 | } |
13 | void ff() { |
14 | dvd.ff(); |
15 | } |
16 | } |
Object클래스 - 모든 클래스의 조상
- 부모가 없는 클래스는 자동적으로 Object클래스를 상속받게 됨
- 모든 클래스는 Object클래스에 정의 11개의 메서드를 상속받음(
toString()
,quuals(Object obj)
,hashCode()
,…)
1 | class Tv { |
2 | // ... |
3 | } |
4 | |
5 | class SmartTv extends Tv { |
6 | // ... |
7 | } |
1 | // 위코드를 컴파일 할 시 |
2 | class Tv extends Object { |
3 | // ... |
4 | } |
5 | class SmartTv extends Tv { |
6 | // ... |
7 | } |