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

Banksy님의 프로필 이미지
Banksy

작성한 질문수

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

다형성과 캐스팅

다형성과 캐스팅 질문입니다

해결된 질문

작성

·

346

·

수정됨

0

처음엔 자식타입이 부모타입보다 더 큰 범위라서 부모 인스턴스는 자식 인스턴스를 참조할 수 있다고 이해했습니다. 또한 강의자료에도 자식 클래스를 참조할 때 자식 인스턴스 안에 부모 인스턴스의 부분과 자식인스턴스의 부분이 나뉘어져있는거라고 나와 있어 그대로 이해했었는데요. 강의에선
부모가 자식을 담을 수 있다 (O)

자식은 부모를 담을 수 없다(O)

이렇게 되어있어 헷갈려서 질문드립니다...

(+ 그리고 다운캐스팅은 복사한 값을 캐스팅하는 것이므로 일시적으로만 실행되는게 맞나요?)
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

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

답변 2

0

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

안녕하세요. Banksy님

강의 내용에서 설명드린 것 처럼 부모는 자식을 담을 수 있지만, 자식은 부모를 담을 수 없습니다.

쉽게 이야기해서 개, 고양이 같은 개념은 상위 개념인 동물에 포함될 수 있지만, 동물이라는 추상적인 개념을 고양이라는 하나의 개념에 포함할 수 없는 것과 같은 개념입니다.

어려우면 딱 하나만 기억하시면 됩니다. 부모는 자식을 담을 수 있다.

다운캐스팅을 하더라도 변수에 값을 저장해두면 다운캐스팅 된 상태를 계속 유지할 수 있습니다.

감사합니다.

Banksy님의 프로필 이미지
Banksy
질문자

영한님께서 말씀하신 "담는다"라는 의미를 부모 참조변수에 자식의 참조값을 담을 수 있다고 이해한거면 맞게 이해한걸까요?

자식 인스턴스에 부모와 자식 인스턴스가 둘 다 존재한다는 것과 헷갈린거같아서요

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

네 생각하신 내용이 맞습니다 🙂

결과적으로는 참조값이 담기는 것이니까요.

0

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

Banksy님의 질문과 유사한 내용으로 다른 수강생분들이 질문하신 내용과 강사님의 답변이 있는 게시글을 찾았습니다. 해당 질문에서는 다운캐스팅과 업캐스팅의 개념, 그리고 부모 클래스와 자식 클래스 간의 참조 관계에 대해 설명하고 있습니다. 질문에 대한 더 자세한 이해를 돕기 위해 아래 링크를 참고해주세요.

각 링크에서는 강사님이 다운캐스팅과 업캐스팅이 어떻게 동작하는지, 그리고 부모 타입의 변수가 자식 인스턴스를 참조할 때 어떤 방식으로 메서드가 호출되는지 상세히 설명하고 있습니다. 이를 통해 다형성에 대한 이해를 높일 수 있을 것입니다.

Banksy님의 프로필 이미지
Banksy

작성한 질문수

질문하기