[JAVA] 타입변환과 다형성(polymorphism)

임유빈·2022년 7월 19일
0

JAVA

목록 보기
9/17
post-thumbnail

1. 타입변환과 다형성(polymorphism)

(1) 개념

다형성이란 같은 타입이지만 실행 결과가 다양한 객체 대입(이용) 가능한 성질을 말한다. 부모 타입에는 모든 자식 객체가 대입이 가능하고 자식 타입은 부모 타입으로 자동 타입 변환이 가능하다.

(2) 자동 타입 변환(Promotion)

바로 위의 부모가 아니더라도 상속 계층의 상위면 자동 타입 변환이 가능하다. 변환 후에는 부모 클래스 멤버만 접근이 가능하다.

(3) 하나의 배열로 객체 관리

(4) 매개변수가 클래스 타입일 경우

해당 클래스의 객체 대입이 원칙이나 자식 객체 대입하는 것도 허용한다.

(5) 강제 타입 변환(Casting)

조건

• 자식 타입을 부모 타입으로 자동 변환 후, 다시 자식 타입으로 변환할 때

강제 타입 변환 이 필요한 경우

• 자식 타입이 부모 타입으로 자동 변환
• 부모 타입에 선언된 필드와 메소드만 사용 가능
• 자식 타입에 선언된 필드와 메소드를 다시 사용해야 할 경우

(6) 객체 타입 확인


부모 타입이면 모두 자식 타입으로 강제 타입 변환할 수 있는 것 아님
• ClassCastException 예외 발생 가능

• 먼저 자식 타입인지 확인 후 강제 타입 실행해야 함

0개의 댓글