Language/Java

참조변수의 형변환// 다형성

원2 2021. 3. 25. 16:07
728x90
반응형


 *참조변수의 형변환을 하는 이유 : 멤버의 개수를 조절하기 위한 것이고
 *조상 타입으로의 형변환을 생략할 수 있는 이유는 조상타입으로 형변화하면 다룰 수 있는 멤버의 개수가
 *줄어들어 항상 안전하기 때문.
 *또한 코딩하기 더 쉽다. 

class Human {
	void speak () {
		System.out.println("여기는 조상클래스");
	}
	
}
class Hong extends Human {
	void speak () {
		System.out.println("Hong");
	}
}
class Kang extends Human {
	void speak () {
		System.out.println("Kang");
	}
}
class Kim extends Human {
	void speak () {
		System.out.println("Kim");
	}
}
public class Test013 {

	public static void main(String[] args) {
		Hong aHong = new Hong();
		Kang aKang = new Kang();
		Kim   aKim = new Kim();
		
		aHong.speak();
		aKang.speak();
		aKim.speak();
		
		Human aHuman1 = new Hong(); // 왜? new에서 객체 참조변수가 Hong 이기 때문에 Hong(); 호출
		aHuman1.speak();
		
		Human aHuman2 = new Kang(); // 왜? new에서 객체 참조변수가 Kang 이기 때문에 Kang(); 호출
		aHuman2.speak();
		
		Human aHuman3 = new Kim(); // 왜? new에서 객체 참조변수가 Kim 이기 때문에  Kim(); 호출
		aHuman3.speak();
		/*
		 *참조변수의 형변환을 하는 이유 : 멤버의 개수를 조절하기 위한 것이고
		 *조상 타입으로의 형변환을 생략할 수 있는 이유는 조상타입으로 형변화하면 다룰 수 있는 멤버의 개수가
		 *줄어들어 항상 안전하기 때문.
		 *또한 코딩하기 더 쉽다. 
		 */
	}

}
728x90
반응형