JAVA 업캐스팅&다운캐스팅(upcasting&downcasting)

강효림·2023년 4월 15일
0

JAVA

목록 보기
6/19

Upcasting 이란?

서브클래스 객체를 슈퍼클래스 객체 타입으로 타입을 변환하는 것이다.
상속관계에서만 가능하다.

class Transportaion{...}
class Bus extends Transportation{...}

----main----
Bus b = new Bus();
Transportation t = b; <= 업캐스팅, 자동으로 타입이 변환됨

upcasting이 되면 슈퍼클래스의 멤버만 접근이 가능하다.
즉, 원래있던 서브클래스의 멤버들에 접근이 불가능하단 소리다.
만약 접근하려하면 컴파일 오류가 생긴다.

Downcasting 이란?

슈퍼클래스 객체를 서브클래스 타입으로 변환하는 것이다.
업캐스팅된 변수만 다운캐스팅이 가능하다.

class Transportaion{...}
class Bus extends Transportation{...}

----main----
Transportation t = new Bus(3000);
Bus b;
b=(Bus)t; <= 다운캐스팅, (Bus)강제형변환 표시가 필요함

downcasting이 되면 다시 서브클래스의 멤버들에 접근이 가능하다.

0개의 댓글