본문 바로가기
study/Java

[Java] 22. 다형성 예제

by 금이패런츠 2022. 3. 21.
728x90
반응형
package chap7;
/*
 * 다형성 예제
 * 1. 참조변수의 형변환.
 * 2. 자손타입의 객체는 부모타입의 참조변수로 참조가 가능하다.
 *    => 부모타입의 참조변수로 자손타입의 객체 참조시 부모타입의 멤버들만 호출가능
 * 3. 모든 클래스는 Object클래스를 상속받는다.
 *    => 모든 클래스의 객체는 Object 타입의 참조변수로 참조가 가능하다.
 *       단, Object클래스의 멤버만 호출이 가능하다.
 */
class Bike2 {
	int wheel;
	Bike2(int wheel) {
		this.wheel = wheel;
	}
	void drive() {
		System.out.println("페달을 밟는다");
	}
	void stop() {
		System.out.println("브레이크를 잡는다");
	}
}
class AutoBike2 extends Bike2 {
	boolean power;
	AutoBike2(int wheel) {
		super(wheel);
	}
	void power() {
		power = !power;
		if(power) System.out.println("전원이 켜졌습니다.");
		else System.out.println("전원이 꺼졌습니다.");
	}
}
public class BikeEx2 {
	public static void main(String[] args) {
		AutoBike2 ab = new AutoBike2(2);
		Bike2 b;
		ab.power();
		ab.drive();
		ab.stop();
		b = ab; //AutoBike2 클래스형이 Bike2 클래스 형으로 형변환됨
//		b.power(); //power() 메서드는 Bike2타입의 멤버가 아님
		b.drive();
		b.stop();
	}
}
728x90
반응형