728x90
아래의 코드를 보면 포인트 클래스와 그를 상속하고 있는 컬러 포인트 클래스가 있으며
두 클래스 모두 toString()을 오버라이딩하고 있는 것을 볼 수 있다.


이후 메인 함수 안에 포인트 배열을 만들고 그 안에
포인트 객체와 컬러 포인트 객체를 넣은 것을 확인할 수 있다.
그리고 배열안에 들어있는 객체를 확인하기 위해 toString()을 사용하려 할 때
실제 저장된 값에 컬러포인트가 있음에도 불구하고
포인트에서 재정의한 toString()만 확인되는 것을 볼 수 있다.
이는 배열을 Point 클래스로 선언했기 때문이다.(객체들을 담은 상자가 Point 상자이기 때문이다.)


그런데 안내는 포인트라고 나와있지만 실제 배열에서는 컬러 포인트의 것을 호출하여 사용하고 있는데
이는 메서드를 호출할 때 자기자신의 영역을 먼저 확인하고(실제 객체를 먼저 확인)
이후에 부모의 영역을 확인하기 때문이다.
이러한 현상을 동적 바인딩이라고 부르며 다형성이 구현(실현)되었다고 할 수 있다.
728x90
'Java > study' 카테고리의 다른 글
| 컬렉션 프레임워크 (0) | 2022.06.23 |
|---|---|
| 추상클래스와 인터페이스 (0) | 2022.06.22 |
| 타입캐스팅 (0) | 2022.06.21 |
| 접근제어자 (0) | 2022.06.20 |
| 오버로딩(Overloading)과 오버라이딩(Overriding) (0) | 2022.06.20 |