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변수타입만 보인다.
}
}