본문 바로가기
💻 개발/Java

[3주차] Java 중급 - 다운 캐스팅과 instanceof

by 컴쏘 2023. 6. 25.

다운 캐스팅 (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");
			}
		}
	}

호출은 main 내부, 함수 구현은 main 외부
결과


2023 KAKAO Tech Campus_BackEnd 필수 과정
Java 3주차 강의 정리 내용입니다.