• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

상속시 데이터 타입이 가지는 의미

20.09.06 18:31 작성 조회수 94

0

ParentClass를 상속받고 있는 FirstChildClass의 경우, 생성자 호출시 메모리상에서 어떤 과정을 거치나요?<o:p></o:p>

ParentClass constructor가 먼저 호출되고 그 후 FirstChildClass constructor가 호출되는데 메모리 주소를 어떻게 레퍼런스 하고 있나요

② 위와 마찬가지로 FirstChildClassParentClass를 상속받고 있을 때, <o:p></o:p>

FirstChildClass fch1 = new FIrstChildClass();를 통해 생성된 객체(fch1)<o:p></o:p>

ParentClass fch2 = new FirstChildClass();를 통해 생성된 객체(fch2)의 차이가 무엇인가요?<o:p></o:p>

(* 인스턴스명.getClass().getName()을 통해 클래스명을 확인했을 때, 둘 다 FirstChildClass로 확인되었습니다)<o:p></o:p>

제가 이해되지 않는 부분은 다음 사실입니다.<o:p></o:p>

객체생성시 데이터타입을 FirstChildClass로 정의했던 fch1의 경우, FirstChildClass에서만 정의한 method(getOpenYear())를 호출할 수 있었습니다. 반면 객체생성시 데이터타입을 ParentClass로 정의했던 fch2의 경우, ParentClass에서 동일한 이름의 method(getOpenYear())를 정의하고 그것을 FirstChildClass내에서 override하여야 실행이 가능했습니다.<o:p></o:p>

두 객체가 어떠한 차이가 있어 이러한 현상이 일어나는지에 대해 자세히 설명해주시면 감사하겠습니다.<o:p></o:p>

답변 2

·

답변을 작성해보세요.

0

박범님의 프로필

박범

2021.09.13

다형성이란 개념이에요 업캐스팅 다운캐스팅 이건 메모리를 보면서 공부해야 이해가 빨리되는데요 구글에 업캐스팅 치시고 상속관계에서 메모리에 어떻게 저장되는지 알면 좋을듯 싶네요

 

0

rjf1138님의 프로필

rjf1138

2020.10.08

Java의 상속에서 업캐스팅 및 다운캐스팅에 대해 공부해보시면 이해가 되실 것 같습니다.