인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

주무세요님의 프로필 이미지

작성한 질문수

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

상속과 생성자 호출순서

부모 클래스와 자식 클래스의 생성자에 파라미터가 같은 경우에 동작 방식 문의

해결된 질문

작성

·

99

0

7:36초 부분에 대해 문의드립니다.

 

자식 클래스를 생성하면 부모 클래스에 있는 기본 생성자인 Car()가 한번 호출된다고 말씀해주셨는데, 만약 자식 클래스의 생성자와 부모 클래스의 생성자에 동일한 파라미터로 구성된 경우에는 어떻게 동작하나요?

 

예를 들어, 부모 클래스에 Car(String name, Int price)라는 생성자가 있고, ElectricCar(String name, Int price)라는 생성자가 있을때, ElectricCar의 두 파라미터를 입력하여 객체를 생성하는 경우입니다.

 

이런 경우에도 부모 클래스에서는 파라미터가 들어간 생성자가 호출되는 것이 아니라, 기본 생성자가 호출되나요?

답변 4

1

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

다 해결되셨을까요? 질문이 있으시면 이 답변에 대댓글로 부탁드립니다!

0

주무세요님의 프로필 이미지
주무세요
질문자

10:22

super에 대해 질문한 내용도 바로 뒷 부분에 또 설명해 주시네요 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

빈틈없는 강의 감사드립니다!!

0

주무세요님의 프로필 이미지
주무세요
질문자

9:01

해당 강의 조금 바로 뒤에 제가 문의한 케이스에 대한 설명이 나오네요~

그럼 또 질문입니다. 해당 코드에서는 super(model, year)를 명시적으로 호출해줬으므로, 부모 클래스에 있는 Car(String model, int year)라는 생성자를 호출하였는데요,

super(model, year)가 없다면 기본 생성자를 호출하나요?

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. 주무세요님!

자바에서 자식 클래스 객체를 생성할 때 부모 클래스의 생성자 호출에 대해 궁금하신 점에 대해 설명드리겠습니다.

  1. 기본 생성자 호출 여부: 기본적으로 자식 클래스의 생성자가 호출되기 전에 부모 클래스의 기본 생성자가 호출됩니다. 그러나 부모 클래스에 인자가 있는 생성자만 존재하고 기본 생성자가 없을 경우, 자식 클래스에서 반드시 super()를 사용하여 부모의 인자 있는 생성자를 명시적으로 호출해야만 합니다.

  2. 매개변수가 있는 생성자 호출: 질문에서 주신 예시처럼 부모 클래스와 자식 클래스가 동일한 매개변수를 가지는 생성자를 보유하고 있을 때, 자식 클래스의 생성자에서 super(name, price)와 같이 명시하여 부모 클래스의 해당 매개변수 생성자를 호출할 수 있습니다. 만약 명시적으로 호출하지 않으면 부모의 기본 생성자가 시도되지만, 부모 클래스에 기본 생성자가 없으면 컴파일 오류가 발생합니다.

해당 동작 방식에 대한 유사한 질문과 답변이 있는 게시물들을 참고하시면 도움이 될 것입니다:

이 정보가 이해에 도움이 되었기를 바랍니다. 추가적으로 궁금하신 점이 있으시다면 언제든지 질문해 주세요. 😊

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