[Java] 다형성, 명시적 형 변환 (다운캐스팅)

2020. 6. 23. 23:19Language/Java

1. 다형성

하나의 코드가 여러 자료형으로 구현되어 실행되는 것이다. 같은 코드에서 여러 실행 결과가 나온다. 정보은닉, 상속과 더불어 객체지향 프로그래밍의 가장 큰 특징 중 하나이며 유연성, 재활용성, 유지보수성에 기본이 되는 특징이다.

AnimalTest


ArrayList와 향상된 포문을 이용한 다형성

※ 다형성의 장점으로는 유사한 클래스가 추가되는 경우 유지보수에 용이하며, 각 자료형 마다 다른 메서드를 호출하지 않으므로 코드에서 많은 if문이 사라진다.

 

 

 

2. 명시적 형 변환

묵시적으로 상위 클래스 형 변환된 인스턴스가 원래 자료형(하위 클래스)로 변환되는 과정이다. 하위 클래스로의 형 변호나은 명시적으로 되어야 한다.

AnimalTest

 

 

 

3. instanceof 키워드

인스턴스 클래스와 다운캐스팅할 클래스가 다를 경우 다형성 오류가 발생한다. 자주 발생하는 오류를 instanceof 키워드를 이용하여 안정성을 위해 예외처리한다.

AnimalTest
다형성 오류 예외처리


효율성을 위해 메서드를 이용하여 예외처리


[참고] github.com/ozofweird/Java_Practice

728x90