Programming Language/Java

다향성(Polymorphism)

DongHo 2023. 5. 17. 02:47

다향성(Polymorphism)

프로그램 언어의 다형성은 그 프로그래밍 언어의 자료형 체계의 성질을 나타내는 것으로, 프로그램 언어의 각 요소들(상수, 변수, 식, 오브젝트, 함수, 메소드 등)이 다양한 자료형(type)에 속하는 것이 허가되는 성질을 가리킨다. 반댓말은 단형성으로, 프로그램 언어의 각 요소가 한가지 형태만 가지는 성질을 가리킨다.

 

업 캐스팅

- 하위 객체는 상위 클래스형 변수에 대입이 가능, 상위로의 자료형 변환을 합니다.
- 업 캐스팅은 하위 클래스는 상위 클래스라는 개념이 성립합니다.

업 캐스팅의 제약

- 업 캐스팅된 변수로는 하위 객체의 멤버를 참조할 수 없는 제약이 있습니다.
- 상위클래스의 변수는 하위 클래스를 접근 지정자만 허용한다면 접근이 가능합니다.

 

 

다운 캐스팅

- 상위 클래스 형을 하위 클래스 형으로 변환
- 다운 캐스팅은 반드시 명시적인 형변환 연산자 (하위 클래스)가 필요합니다.
- 만일 형변환 연산자가 없으면 컴파일 시간에 오류가 발생합니다.

형변환 연산 방법

클래스자료형 변수 = (클래스자료형) 상위 클래스자료형 객체;

 

 

객체 확인 연산자

instanceof 연산자

- 피연산자1 instanceof 피연산자2
- 피연산자1이 객체변수가 참조하는 객체가 실제 피연산자2 클래스 이름이면 true, 아니면 false를 반환합니다.
- 상속관계가 없으면 문법 오류 발생합니다.