Java 업캐스팅

김정훈·2024년 4월 20일

Java

목록 보기
16/48

업캐스팅

상위 클래스로 자동(묵시적) 형변환

ParentChild의 관계를 생각해보면,

  • 개념 면에서 보면 상위 클래스인 ParentChild보다 일반적인 개념
  • 기능 면에서 보면 ChildParent보다 기능 이 더 많습니다.
  • 왜냐하면 상속받은 클래스는 상위 클래스의 기능을 모두 사용할 수 있고 추가로 많은 기능을 구현하기 때문입니다.

ChildChild형 이면서 동시에 Parent 형이기도 합니다.

  • 즉, Child 클래스로 인스턴스를 생성할 때 이 인스턴스의 자료형을 Parent 형으로 클래스 형 변환하여 선언할 수 있습니다. 왜냐하면 Child 클래스는 Parent 클래스를 상속받았기 때문입니다.

클래스형과 클래스의 자료형, 인스턴스형과 인스턴스의 자료형은 모두 비슷한 의미로 사용하는 용어입니다. 이러한 클래스 형 변환을 업캐스팅(upcasting)이라고도 합니다.

하위클래스 객체 → 상위클래스의 자료형으로 자동 형변환(다형성)

public class Ex01 {
    public static void main(String[] args) {
        Child c = new Child();
        Parent p = c; 
        //A라는 클래스 객체자료형 a라는 변수에 c객체의 주소값대입.
        //하위클래스 👉 상위클래스 (업캐스팅)
    }
}

선언 및 초기화

public class Ex01 {
    public static void main(String[] args) {
        Parent p = new Child();
    }
}
public class Ex04 {
    public static void main(String[] args) {
        A ad = new D();
        A ac = new C();
        //C c = ad; 오류발생  
        //C c = ac; 오류발생
    }
}
profile
안녕하세요!

0개의 댓글