본문 바로가기
JAVA

다형성과 형변환

by 영카이브 2024. 1. 27.

다형성이란?

한 타입의 참조변수로 여러 타입의 객체를 참조하는 것을 말한다.

 

 

다형성이 가능한 경우

  • 두 클래스가 서로 상속관계
  • 조상타입의 참조변수로 자손타입의 인스턴스 참조 가능 
  • 자손타입의 참조변수로 조상타입의 인스턴스 참조 불가

ex) 조상클래스가 Animal / 자식클래스가 Dog 일 때

  • Animal animal =  new Animal();   
  • Animal animal  = new Dog(); ( O )  Dog 인스턴스 중에서 Animal클래스의 멤버들만 사용 가능  >> 실제 인스턴스 타입으로 형변환하면 Dog인스턴스의 모든 멤버 사용 가능 
  • Dog dog = new Animal(); ( X )  실제 인스턴스인 Animal의 멤버 개수보다 참조변수인 Dog가 사용가능한 멤버 개수가 더 많기 때문

 

 

형변환

  • 서로 상속관계에 있는 클래스 사이에서만 가능
  • 참조변수가 참조하는 실제 타입은 instanceof 연산자를 사용하며 boolean타입으로 true / false 로 형변환 가능여부 앎

 

 

다형성 활용

  • 조상 클래스의 멤버만 사용 시 여러 자식클래스르를 메서드의 매개변수로 조상클래스로 받으면 하나의 메서드로 처리 가능
  • 조상타입의 참조변수 배열을 사용하면 공통의 조상을 가진 서로 다른 종류의 객체 배열로 묶어서 사용 가능  

 

 

참고 자료 출처 : 책 < 자바의 정석 > 

'JAVA' 카테고리의 다른 글

예외처리  (0) 2024.01.31
인터페이스  (0) 2024.01.28
탬플릿 메서드 패턴 & 팩토리 메서드패턴  (0) 2024.01.24
메서드 동적 바인딩  (0) 2024.01.19
참조형식과 호출되는 메소드 관계  (0) 2024.01.18