[Java] 클래스의 다형성 : 형변환, instance of

정재현·2024년 1월 3일

Java

목록 보기
29/43
post-thumbnail

다형성이란

  • 여러 가지 형태를 가질 수 있는 능력을 의미
  • 참조변수 타입변환을 활용해서 다형성 구현 가능
  • 부모클래스 변수 = 자식클래스 객체;를 선언하여 자동 타입변환된 변수를 사용하여 각각의 자식클래스 객체에 재정의 된 메스드를 통해 다양한 객체를 생성할 수 있다.

참조변수의 타입변환

자동 타입변환

  • 부모클래스 변수 = 자식클래스 객체;
  • 자식타입객체는 자동으로 부모타입변수로 변환이 일어남
  • 자식 객체는 부모 객체의 멤버를 상속받기 때문에 부모와 동일하게 취급

자동 타입변환 주의사항

  • 부모타입 변수로 자식객체의 멤버에 접근할 때는 부모 클래스에 선언된 즉, 상속받은 멤버만 접근할 수 있다.

강제 타입 변환

  • 자식타입 변수 = (자식타입) 부모타입객체;
  • 부모타입객체는 자식타입변수로 자동으로 타입변환되지 않음
  • 타입변환 연산자를 사용하여 강제로 자식타입으로 변환할 수 있다.

강제 타입 변환 주의사항

  • 자식타입객체가 부모타입으로 자동 타입변환된 후 다시 자식타입으로 변환될 때 만 강제 타입변환이 가능
  • 부모타입 변수로는 자식타입객체의 고유한 멤버를 사용할 수 없기 때문에 사용이 필요한 경우가 생겼을 때 강제 타입변환을 사용
  • 자동 타입변환된 부모타입 변수가 아닌 부모객체를 자식타입의 변수로 강제 타입변환하려고 하면 오류가 발생

instance of

  • 해당 객체가 내가 의도하는 클래스의 객체인지 확인 가능
  • 다형성 기능으로 인해 해당 클래스 객체의 원래 클래스명을 체크하는것이 필요
  • {대상 객체} instance of {클래스 이름} 와 같은 형태로 사용
  • 응답값은 boolean

정리하기

다형성이란

  • 여러 가지 형태를 가질 수 있는 능력

자동타입변환 vs 강제타입변환

  • 자동타입변환 : 자식클래스 → 부모클래스
  • 강제타입변환 : 부모클래스 → 자식클래스

instance of

  • 해당 객체가 내가 의도하는 클래스의 객체인지 파악가능한 키워드

profile
공부 기록 보관소

0개의 댓글