기존의 클래스를 재사용해 새로운 클래스를 작성하는 것
자바는 다중상속 X
class TVCR extends TV, VCR { // 에러. 조상은 하나만 가능
...
}
다중상속의 단점
포함관계로 다중상속의 이점을 얻을 수 있음
class Tv {
boolean power; // 전원상태(on/off)
int channel; // 채널
void power() { power = !power; }
void channelUp() { ++channel; }
void channelDown() { --channel; }
}
class VCR {
boolean power; // 전원상태(on/off)
int counter = 0;
void power() { power = !power; }
void play() { /* 내용생략*/ }
void stop() { /* 내용생략*/ }
void rew() { /* 내용생략*/ }
void ff() { /* 내용생략*/ }
}
class TVCR extends Tv { // Tv 상속받음
VCR vcr = new VCR(); // VCR 클래스 포함시켜서 사용
int counter = vcr.counter;
void play() { // VCR 클래스의 메서드를 호출하기 위해 자체 메서드를 만들고 vcr 참조변수로 VCR 메서드 호출
vcr.play();
}
void stop() {
vcr.stop();
}
void rew() {
vcr.rew();
}
void ff() {
vcr.ff();
}
}
extends Object
로 상속 받도록 함