단일 상속(single inheritance)
Java 는 단일 상속만을 허용한다.
- 비중이 높은 클래스 하나만 상속관계로, 나머지는 포함관계로 한다.
예4)
class Tv{
boolean power;
int channel;
void power(){power =!power;}
void channelUp() {++channel;}
void channelDown() {--channel;}
}
class VCR {
boolean power;
int counter =0;
void power() {power = !power;}
void play() {}
void stop() {}
void rew() {}
void ff() {}
}
class TVCR extends Tv{
VCR vcr = new VCR(); //VCR클래스를 포함시켜서 사용한다.
int counter = vcr.counter;
void play() {
vcr.play();
}
void stop() {
vcr.stop();
}
void rew() {
vcr.rew();
}
void ff() {
vcr.ff();
}
}
자바는 다중 상속을 허용하지 않으므로 Tv클래스를 조상으로 하고, VCR클래스는 TVCR클래스에 포함시켰다.
그리고 TVCR 클래스에 VCR 클래스의 메서드와 일치하는 선언부를 가진 메서드를 선언하고 내용은 VCR클래스의 것을 호출해서 사용하도록 했다. 외부적으로는 TVCR클래스의 인스턴스를 사용하는 것처럼 보이지만 내부적으로는 VCR클래스의 인스턴스를 생성해서 사용하는 것이다.
이렇게 함으로써 VCR클래스의 메서드 내용이 변경되더라도 TVCR클래스의 메서드들 역시 변경된 내용이 적용되는 결과를 얻을 수 있을 것이다.
DVD가 갖고 있는 메서드를 호출
'JAVA > 객체지향프로그래밍2' 카테고리의 다른 글
[JAVA] import문 (0) | 2021.07.07 |
---|---|
[JAVA] super, super() (0) | 2021.06.28 |
[JAVA] Object클래스 (0) | 2021.06.24 |
[JAVA]포함(composite) (0) | 2021.06.24 |
[JAVA] 상속(inheritance) (0) | 2021.06.24 |