day14_TvcrEx19

육희영·2021년 10월 28일
0

상속

package com.java1.day14;

//모든 상속계층도의 최상위에는 Object클래스가 위치한다.
//자바는 다중상속을 허용하지 않는다.
//아래 예제는 Tv1을 상속 받았고, VCR을 포함시켰다.
class Tv1 {
	boolean power; // 전원상태(on/off)
	int channel; // 채널

	void power() {
		power = !power;
	}

	void channelUp() {
		++channel;
	}

	void channelDown() {
		--channel;
	}

	@Override // 오버라이딩이라는 표시를 해준것이다..@ -> 에노테이션이라고 한다.
	public String toString() { // 부모 클래스의 toString()을 오버라이딩 하였다.
		return "hi";
	}
}

class VCR {
	boolean power; // 전원상태(on/off)
	int counter = 0;

	void power() {
		power = !power;
	}

	void play() {
		System.out.println("play");
	}

	void stop() {
		System.out.println("stop");
	}

	void rew() {
		System.out.println("rew");
	}

	void ff() {
		System.out.println("ff");
	}
}

class TVCR extends Tv1 { // Tv1 클래스를 상속받았고
	VCR vcr = new VCR(); // VCR클래스는 포함시켰다.
	int counter = vcr.counter;

	void play() {
		vcr.play(); // vcr 클래스의 메서드의 내용이 변경되더라도 TVCR 클래스의 메서드 역시 변경된 내용이 적용된다.
	}

	void stop() {
		vcr.stop(); // vcr 클래스의 메서드의 내용이 변경되더라도 TVCR 클래스의 메서드 역시 변경된 내용이 적용된다.
	}

	void rew() {
		vcr.rew(); // vcr 클래스의 메서드의 내용이 변경되더라도 TVCR 클래스의 메서드 역시 변경된 내용이 적용된다.
	}

	void ff() {
		vcr.ff(); // vcr 클래스의 메서드의 내용이 변경되더라도 TVCR 클래스의 메서드 역시 변경된 내용이 적용된다.
	}
}

public class TvcrEx19 {

	public static void main(String[] args) {
		TVCR tvcr = new TVCR();
		tvcr.play();
		tvcr.stop();
		tvcr.rew();
		tvcr.ff();
		tvcr.channelUp();
		tvcr.channelDown();
		System.out.println(tvcr.channel);
		Tv1 t = new Tv1();
		System.out.println(t);
	}

}

출력결과

play
stop
rew
ff
0
hi

0개의 댓글

관련 채용 정보