JAVA :: 캐스팅

📝 캐스팅(casting)

💬 타입 변환이라고 하며, 업캐스팅과 다운캐스팅으로 나뉜다.


💡 업캐스팅(자동타입변환)

💬 자식 클래스 객체가 부모 클래스 타입으로 변환되는 것을 말한다.

부모타입 변수 = new 자식타입();

⚠ 업캐스팅해서 자식 클래스의 객체를 가리키고 있지만, 부모 클래스의 멤버만 접근할 수 있다.

⚠ 상속 계층에서 상위인 경우, 업캐스팅이 가능하다.

👉예시
Parent parent = new Child();

💡 다운캐스팅(강제타입변환)

💬 업캐스팅된 것을 다시 원래대로 변환하는 것을 말한다.

자식타입 변수 = (자식타입)부모타입변수;

⚠ 부모 클래스의 레퍼런스는 업캐스팅해서 자식 클래스의 객체를 가리키고 있지만, 부모 클래스의 멤버만 접근할 수 있다.

⚠ (자식타입)의 타입 변환을 명시적으로 지정해야 한다.

👉예시
Child child = (Child)parent; 

💡 instanceof 연산자

💬 레퍼런스가 가리키는 객체가 어떤 클래스 타입인 지 확인하기 위해 사용된다.

객체레퍼런스 instanceof 클래스타입

⚠ 객체가 해당 클래스 타입이면 true, 아니면 false로 처리한다.

👉예시
Person person = new Student();
if(person intanceof Student)  //true

Reference

명품 자바 에센셜(2014, 황기태)

좋은 웹페이지 즐겨찾기