Post

[java] Class 형변환

형변환(type conversion)은 캐스팅(casting) 이라고도 불립니다. java 에서의 class 형 변환에 대해 알아봅니다.

[java] Class 형변환

Summary

  • 업캐스팅: 부모 타입으로 변환(자동,암묵적)
  • 다운캐스팅: 자식 타입으로 변환(수동, 명시적)
  • instanceof를 통해 객체가 특정 클래스인지 확인하는 것이 좋음
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Animal {}
class Dog extends Animal {}
class Cat extends Animal {}

public class Main {
    public static void main(String[] args) {
        Animal animal = new Dog();

        if (animal instanceof Dog) {
            System.out.println("This is a Dog");
        } else if (animal instanceof Cat) {
            System.out.println("This is a Cat");
        } else {
            System.out.println("Unknown Animal");
        }
    }
}

사전 조건

  • 서로 상속 관계
  • 부모 클래스와 자식 클래스 간에만 형변환 가능

암묵적 형변환

부모(Parent) 객체가 자식(Child) 객체의 상위 클래스인 경우

1
Parent p = new Child();

명시적 형변환

1
2
Parent p = new Child();
Child c = (Child) p;
This post is licensed under CC BY 4.0 by the author.