작성
·
142
0
① ParentClass를 상속받고 있는 FirstChildClass의 경우, 생성자 호출시 메모리상에서 어떤 과정을 거치나요?
ParentClass constructor가 먼저 호출되고 그 후 FirstChildClass constructor가 호출되는데 메모리 주소를 어떻게 레퍼런스 하고 있나요?
② 위와 마찬가지로 FirstChildClass가 ParentClass를 상속받고 있을 때,
FirstChildClass fch1 = new FIrstChildClass();를 통해 생성된 객체(fch1)와
ParentClass fch2 = new FirstChildClass();를 통해 생성된 객체(fch2)의 차이가 무엇인가요?
(* 인스턴스명.getClass().getName()을 통해 클래스명을 확인했을 때, 둘 다 FirstChildClass로 확인되었습니다)
제가 이해되지 않는 부분은 다음 사실입니다.
객체생성시 데이터타입을 FirstChildClass로 정의했던 fch1의 경우, FirstChildClass에서만 정의한 method(getOpenYear())를 호출할 수 있었습니다. 반면 객체생성시 데이터타입을 ParentClass로 정의했던 fch2의 경우, ParentClass에서 동일한 이름의 method(getOpenYear())를 정의하고 그것을 FirstChildClass내에서 override하여야 실행이 가능했습니다.
두 객체가 어떠한 차이가 있어 이러한 현상이 일어나는지에 대해 자세히 설명해주시면 감사하겠습니다.