스마트 인재개발원/Java

2021-04-26 자바 업캐스팅 다운캐스팅

package ex_02;

public class Main {

	public static void main(String[] args) {
		//인형뽑기 기계
		//기계
		//인형들도 있어야한다
		
		//인형뽑기 객체 생성
		Machine m = new Machine();
//		
//		//인형객체 생성
//		Pika pika = new Pika();
//		
//		m.run(pika);
//	
//		//파이리 인형을 뽑아보자!
//		Pairi pairi = new Pairi();
//		
//		m.run(pairi);
//		
//		//꼬부기 인형을 뽀ㅃ아보자
//		Kkobuk kkobuk = new Kkobuk();
//		m.run(kkobuk);
		
		
		m.run(new Pika());
		m.run(new Kkobuk());
		

	}

}
​
package ex_02;

public class Machine {
	
//	//어떤 인형을 추가하여 뽑을건지 기계 설정
//	public void run(Pika p) {
//		p.pika();
//		
//	}
//	
//	public void run(Pairi p) {
//		p.pairi();
//	}
//	
//	public void run(Kkobuk p) {
//		p.kkobuk();
//	}

	
	//어느 인형이 들어오더라도 뽑기가 가능하도록 만들기 -> 다형성 의미 
	public void run(Doll d) {
		d.doll();
		
	}
	
	

}
​
package ex_02;

public class Doll {

	public void doll() {
		System.out.println("인형");
	}
}
package ex_02;

public class Pairi extends Doll {
	
//	public void () {
//		
////		System.out.println("파이리 인형!");
//		
//		
//	}
	
	public void doll(){
		System.out.println("파이리 인형");
		
	}
	
}
​
package ex_02;

public class Kkobuk extends Doll{
//	public void kkobuk() {
//		
//		System.out.println("꼬부기 인형!");
//	}

	@Override
	public void doll() {
	System.out.println("꼬부기 인형");
	}
	
}
package ex_02;

public class Pika extends Doll{

	//피카츄 인형만 있는 인형기계
	
//	public void pika() {
//		System.out.println("피카츄 인형!");
//	}
	
	//doll 클래스로 부터 돌려받는 매소드를 활용하여
	//피카츄 인형 만들기
	@Override
	public void doll() {
		System.out.println("피카츄인형");
	}
	
	
}