상위 클래스로의 묵시적 형 변환 ( 업 캐스팅 )
상위 클래스 형으로 변수를 선언하고 하위 클래스 인스턴스를 생성 할 수 있다.
하위 클래스는 상위 클래스의 타입을 내포하고 있으므로 상위 클래스로 묵시적 형변환이 가능하다
상속 관계에는 모든 하위 클래스는 상위 클래스로 묵시적 형변환이 일어난다.
그 역은 성립되지 않는다.
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변수타입만 보인다.
}
}
'JAVA Programming' 카테고리의 다른 글
[36] 다형성 (Polymorphism) 이란 ? (0) | 2020.07.15 |
---|---|
[35] 메소드 오버라이딩 , 업캐스팅되면 과연어떤게 호출? 가상테이블 (0) | 2020.07.15 |
[33] 상속에서의 super() 상위 부모 생성자 호출 (0) | 2020.07.15 |
[32] 상속 , 다형성 이란 ? (0) | 2020.07.15 |
[29] ArrayList 을 이용하여 학생의 수강과목 학점 출력하기 (0) | 2020.07.15 |