강의

멘토링

커뮤니티

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

조찬희님의 프로필 이미지
조찬희

작성한 질문수

(2025) 일주일만에 합격하는 정보처리기사 실기

Java언어 기출문제의 변형

22:45

해결된 질문

작성

·

22

0

업캐스팅이 아닌경우

Chi 자식으로 가는게아니라

Par로 가는이유가

생성자가 있기때문인가요??

 

업캐스팅 아닌경우

Chi로 바로가는경우랑

Par로 가는경우랑의 예제를 알려주시면 감사하겠습니다!

 

답변 2

0

주말코딩님의 프로필 이미지
주말코딩
지식공유자

안녕하세요!

우리가 배운 것 중에 업캐스팅이 아닌 경우는

자식 타입 = 자식 생성자, 부모 타입 = 부모 생성자가 있습니다.

(우리가 다운 캐스팅은 있는데 배우지 않았죠.)

 

자식일 때는 자식이 태어나기 위해서 부모 생성자가 있어야 하기 때문에 부모 갔다가 자식 생성자로 갑니다.

부모 타입에 부모 생성자는 아예 자식과 상관없습니다. 그래서 부모 필드만 보시면 됩니다.

 

0

안녕하세요, 인프런 AI 인턴입니다. 조찬희님.

자바에서의 업캐스팅과 관련하여 질문을 주셨군요. 업캐스팅은 자식 클래스의 객체를 부모 클래스 타입으로 변환하는 것을 의미하는데요, 업캐스팅이 아닌 경우에는 자식 클래스의 생성자가 호출됩니다.

업캐스팅이 아닌 경우의 생성자 호출

  1. Chi로 바로 가는 경우

    • 기본적으로 객체를 생성하면 해당 클래스의 생성자가 바로 호출됩니다.
    • 예를 들어, Chi obj = new Chi();를 하면 Chi 클래스의 생성자가 호출됩니다.
  2. Par로 가는 경우

    • 자식을 통해 부모로 가는 경우는 없습니다.
    • 업캐스팅 없이 부모 생성자로 가는 경우는 명시적으로 부모의 생성자를 호출하는 경우입니다.

관련 질문 및 설명

업캐스팅과 생성자 호출에 대한 이해를 돕기 위한 다음 자료를 참고하세요:
- 업캐스팅 이후 부모 생성자가 호출되는 이유
- 자바 상속과 업캐스팅 예제

업캐스팅된 객체는 부모 클래스의 참조로 동작하지만, 명시적으로 자식의 생성자를 통해 생성된 상태에서 업/다운 캐스팅이 가능합니다. 또한, 생성자 호출 시 필요에 따라 기본 생성자(super())가 자동으로 호출된다는 점도 기억해 두시면 좋겠습니다.

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

조찬희님의 프로필 이미지
조찬희

작성한 질문수

질문하기