인프런 커뮤니티 질문&답변

명석님의 프로필 이미지
명석

작성한 질문수

김영한의 실전 자바 - 기본편

다형성 시작

다형성 참조에 관하여 질문 있습니다.

작성

·

208

0


[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
여기에 질문 내용을 남겨주세요.

Parent poly = new Child();

이코드가 부모에 자식을 참조 할 수 있다는건 알겠습니다. 그런데 근본적으로 코드가 해석이 명확히 안됩니다.

Parent타입의 변수 poly를 선언하고 poly에 Child클래스의 객체를 생성후 그 객체의 참조값을 대입을 한건가요?

그럼 이 그림에서 Parent poly = new Child(); 이 코드를 작성시 메모리에 Parent도 생성이 되는걸로 나와있는데 Child객체만 생성된거 아닌가요? Parent도 메모리가 할당되는 이유가 궁금합니다. 그리고 자식의 기능을 호출 할 수 없다고 하셨는데 poly에 결과적으로 Child객체의 참조값이 대입된거 아닌가요? 그러면 참조값을 찾아서 메소드를 호출 할 수 있는거 아닌가요?

답변 2

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 명석님

우선 그림에서 new Child()를 했을 때 메모리에 Parent도 생성이 되어 있는 이유는 바로 앞의 섹션 9. 상속에서 설명드린 내용입니다.

지금 이해가 어려운 것은 아직 상속 부분에 대한 이해가 부족해서 그런 것으로 보입니다.

섹션 9 상속을 처음부터 한번 복습하고 넘어오는 것을 권장드려요.

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다.

명석님의 질문에서 두 가지 중요한 개념, 다형성(polymorphism)과 메모리 할당에 관한 질문을 포함하고 있습니다. 여기서 다루는 주제는 자바의 다형성에서 부모 클래스 변수가 자식 클래스의 인스턴스를 참조할 수 있는 메커니즘과 관련된 것입니다. 이미 이에 관해 자세히 설명한 몇 가지 기존의 자료를 제공드리겠습니다.

  1. 다형성 질문입니다:

    • 다형성 질문입니다
      이 링크에서는 다형성과 관련한 근본적인 질문에 대한 답변을 제공합니다. 특히, Parent parent = new Child();가 어떻게 작동하는지에 대한 설명이 들어 있으며, 이로 인해 메모리 상에서 어떤 일이 벌어지는지에 대한 해석을 제공합니다.
  2. 다운캐스팅 질문:

    • 다운캐스팅 질문
      이 글에서는 상세하게 다형성과 캐스팅에 대해 설명하고 있습니다. 부모 타입에서 자식 타입으로의 캐스팅(다운 캐스팅)이 가능한 상황과 그 메커니즘을 설명하여, 부모 타입의 변수가 자식 클래스의 인스턴스를 어떻게 참조하는지에 대한 이해를 도와줍니다.

위에서 제공된 링크들은 다형성의 개념, 특히 부모 클래스 타입의 변수가 자식 클래스 인스턴스를 참조하는 방법, 그리고 이 과정에서 메모리 상에서 어떤 일이 발생하는지에 대해 설명합니다. 다형성의 이해를 돕는 구체적인 예시와 함께, 메모리 상에서 부모와 자식 인스턴스가 어떻게 관련되는지를 설명하고 있습니다. 이는 명석님의 질문에 직접적으로 영향을 미칠 정보들입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

명석님의 프로필 이미지
명석

작성한 질문수

질문하기