JAVA Programming

[34] 상속에서의 묵시적 형변환 ( 업캐스팅 )

꾸준히개발하자 2020. 7. 15. 11:22

상위 클래스로의 묵시적 형 변환 ( 업 캐스팅 )

상위 클래스 형으로 변수를 선언하고 하위 클래스 인스턴스를 생성 할 수 있다.

하위 클래스는 상위 클래스의 타입을 내포하고 있으므로 상위 클래스로 묵시적 형변환이 가능하다

상속 관계에는 모든 하위 클래스는 상위 클래스로 묵시적 형변환이 일어난다.

그 역은 성립되지 않는다.

 

 

 

package inheritance;

public class CustomerTest {
	public static void main(String[] args) {
		
		Customer customerLee = new Customer(10010, "이순신");       // 상위 클래스 
		customerLee.setCustomerName("이순신");
		customerLee.setCustomerID(10010);
		customerLee.bonusPoint = 1000;
		System.out.println(customerLee.showCustomerInfo());
		
		
		Customer customerKim = new VIPCustomer(10020,"김유신");  // 묵시적 형변환(업캐스팅)
		// VIPCustomer 는 Customer 인과 동시에  Customer 상속을 받았기 때문에 타입을 내포하고 있기 때문이다. 
		// 상위 클래스타입으로 변수를 선언하고  하위 클래스 인스턴스로 생성하면   묵시적으로 이루어진다. 
			
		customerKim.bonusPoint = 10000;
		
		System.out.println(customerKim.showCustomerInfo());
//customerLee = customerKim;// 상위클래스 = 하위클래스 타입   하위클래스는 상위클래스로 묵시적 형변환이 된다 ( 업캐스팅 ) 그역은 성립되지 않는다.
		
	
		customerKim.getCustomerID();  // 부모의 상위클래스 타입은 Customer 이니까 Customer변수타입만 보인다. 
	}
}