다운 캐스팅 (downcasting)
Customer vc = new VIPCustomer(); // 묵시적
VIPCustomer vCustomer = (VIPCustomer) vc; // 명시적
- 업 캐스팅된 클래스를 다시 원래의 타입으로 형 변환 (원래의 인스턴스로 돌아오는 것)
- 하위 클래스로의 형 변환은 명시적으로 해야 함
instanceof를 이용하여 인스턴스의 형 체크
- 원래 인스턴스의 형이 맞는지 여부를 체크하는 키워드 맞으면 true 아니면 false 반환
- instanceof 키워드의 역할은 원래 해당 인스턴스가 검사하려는 인스턴스의 타입이었는가를 확인
- 예) A instanceof B : A가 B타입의 인스턴스였는가?
AnimalTest.java
public void testDownCasting(ArrayList<Animal> list) {
for (int i = 0; i < list.size(); i++) {
Animal animal = list.get(i);
if (animal instanceof Human) {
Human human = (Human)animal;
human.readBooks();
} else if (animal instanceof Tiger) {
Tiger tiger = (Tiger)animal;
tiger.hunting();
} else if (animal instanceof Eagle) {
Eagle eagle = (Eagle) animal;
eagle.flying();
} else {
System.out.println("error");
}
}
}
2023 KAKAO Tech Campus_BackEnd 필수 과정
Java 3주차 강의 정리 내용입니다.
'개발 > Java' 카테고리의 다른 글
[3주차] Java 중급 - 추상 클래스를 활용한 템플릿 메서드 패턴 (0) | 2023.06.25 |
---|---|
[3주차] Java 중급 - 추상 클래스의 의미와 구현하는 방법 (0) | 2023.06.25 |
[3주차] Java 중급 - 상속은 언제 사용할까 (0) | 2023.06.25 |
[3주차] Java 중급 - 다형성과 다형성을 사용하는 이유 (0) | 2023.06.25 |
[3주차] Java 중급 - 메서드 재정의와 가상 메서드 원리 (0) | 2023.06.25 |