Java
[오개념 정리] Upcasting
zangsu_
2023. 5. 20. 17:23
다음과 같은 클래스 Parent, Child가 존재한다고 가정 해 봅시다.
public class Parent {
int a;
}
public class Child extends Parent{
int b;
}
즉, Child 클래스는 Parent 클래스를 부모 클래스로 상속 받습니다.
이후 다음 코드를 실행 해 봅니다.
public class Main {
public static void main(String[] args) {
Parent upcasting = new Child();
System.out.println("upcasting class = " + upcasting.getClass());
}
}
위 코드의 결과 값은 무엇이 나올까요?
정답은 upcasting class = class Child 입니다.
UpCasting 이라는 것은 특정 부모 클래스를 상속 받은 자식 클래스가 존재할 때, 해당 자식 클래스를 "임시로" 부모 클래스로 취급 해 주는 것입니다. 즉, 해당 변수를 부모 클래스로 완전히 형 변환을 시켜 주는 것이 아닙니다.
가만히 고민 해 보고 나니 너무 당연한 이야기인데, 완전히 클래스를 변경시켜 준다고 잘못 생각하고 있었습니다.