[Java]다운캐스팅과 instanceof

이지현·2022년 2월 24일
0
post-thumbnail

📕1. 다운캐스팅

  • 1-1. 다운캐스팅이란?

    상위클래스인 Animal이 있고, 하위클래스인 Human이 있다고 가정했을 때,
    Animal ani = new Human(); 을 할 경우 생성된 인스턴스Human은 Animal 형태이다.
    Animal 자료형으로 인스턴스화 했기 때문에 Human 멤버변수와 메서드는 사용불가하고 Animal자료형의 메서드와 변수만 사용이 가능하다.

    💡 그럼 Animal형태로 인스턴스화 했으나 다시 Human으로 되돌아가야 할 경우 어떻게 할까?

    이렇게 상위 클래스로 형 변환되었던 하위클래스를 다시 원래 자료형으로 변환하는것을 다운캐스팅이라고 한다.


📕2. instanceof

  • 2-1. instanceof란?

    다운캐스팅을 하기 전에 원래 자료형을 알아야만 변환할 때 오류를 막을 수 있다.
    이처럼 자신의 원래 자료형을 확인하는 예약어가 instanceof이다.

  • 2-2. instanceof 사용법

Animal h_animal = new Human();	📢 Human클래스를 Animal자료형태로 인스턴스화

if(h_animal instanceof Human)	📢 h_animal의 이전 자료형이 Human이라면
{
	Human human = (Human)h_animal;	📢 Human 형태로 다운 캐스팅(변환)
}
profile
개발 공부 중인 지현이

0개의 댓글