📝 캐스팅(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, 황기태)