JAVA/포스팅

자바 참조형 변환타입

짜집퍼박사(짜박) 2023. 11. 7. 04:03

자바에서 참조형 변환 타입은 참조 변수의 타입을 다른 타입으로 변환하는 것을 말합니다. 참조형 변환은 상위 클래스로의 변환(업캐스팅)과 하위 클래스로의 변환(다운캐스팅)으로 나눌 수 있습니다. 참조형 변환을 이해하기 위해 다음 두 가지 주요 유형을 살펴보겠습니다.

 

1. 업캐스팅 (Upcasting)

- 업캐스팅은 하위 클래스의 인스턴스를 상위 클래스 타입의 참조 변수로 변환하는 것입니다.
- 업캐스팅은 자동으로 이루어집니다. 즉, 명시적인 형변환 연산자가 필요하지 않습니다.
- 업캐스팅을 사용하면 상위 클래스 타입의 변수로 하위 클래스 객체를 다룰 수 있습니다.
- 예를 들어, List가 상위 클래스이고 ArrayList가 하위 클래스인 경우, List 타입의 변수로 ArrayList 객체를 다룰 수 있습니다.

ArrayList<Integer> arrayList = new ArrayList<>();
List<Integer> list = arrayList; // 업캐스팅

 

2. 다운캐스팅 (Downcasting)

- 다운캐스팅은 상위 클래스 타입의 참조 변수를 하위 클래스 타입으로 변환하는 것입니다.
- 다운캐스팅은 명시적으로 형변환 연산자를 사용해야 합니다.
- 다운캐스팅은 객체의 실제 타입을 알 때 사용해야 하며, 실제 객체가 해당 하위 클래스 타입일 때- 만 안전하게 사용할 수 있습니다.
- 다운캐스팅을 사용할 때 instanceof 연산자로 객체의 타입을 확인하는 것이 좋습니다.

List<Integer> list = new ArrayList<>();
ArrayList<Integer> arrayList = (ArrayList<Integer>) list; // 다운캐스팅

// 다운캐스팅 전에 instanceof 연산자로 타입 확인
if (list instanceof ArrayList) {
    ArrayList<Integer> arrayList = (ArrayList<Integer>) list;
}

참조형 변환은 객체 지향 프로그래밍에서 중요한 개념 중 하나이며, 상속과 다형성을 지원하는데 사용됩니다. 주의해야 할 점은 올바른 형변환을 수행하고, 객체의 실제 타입을 고려하여 안전하게 사용해야 한다는 것입니다.

 

With ChatGPT