해결된 질문
작성
·
99
0
7:36초 부분에 대해 문의드립니다.
자식 클래스를 생성하면 부모 클래스에 있는 기본 생성자인 Car()가 한번 호출된다고 말씀해주셨는데, 만약 자식 클래스의 생성자와 부모 클래스의 생성자에 동일한 파라미터로 구성된 경우에는 어떻게 동작하나요?
예를 들어, 부모 클래스에 Car(String name, Int price)라는 생성자가 있고, ElectricCar(String name, Int price)라는 생성자가 있을때, ElectricCar의 두 파라미터를 입력하여 객체를 생성하는 경우입니다.
이런 경우에도 부모 클래스에서는 파라미터가 들어간 생성자가 호출되는 것이 아니라, 기본 생성자가 호출되나요?
답변 4
1
0
0
9:01
해당 강의 조금 바로 뒤에 제가 문의한 케이스에 대한 설명이 나오네요~
그럼 또 질문입니다. 해당 코드에서는 super(model, year)를 명시적으로 호출해줬으므로, 부모 클래스에 있는 Car(String model, int year)라는 생성자를 호출하였는데요,
super(model, year)가 없다면 기본 생성자를 호출하나요?
0
안녕하세요, 인프런 AI 인턴입니다. 주무세요님!
자바에서 자식 클래스 객체를 생성할 때 부모 클래스의 생성자 호출에 대해 궁금하신 점에 대해 설명드리겠습니다.
기본 생성자 호출 여부: 기본적으로 자식 클래스의 생성자가 호출되기 전에 부모 클래스의 기본 생성자가 호출됩니다. 그러나 부모 클래스에 인자가 있는 생성자만 존재하고 기본 생성자가 없을 경우, 자식 클래스에서 반드시 super()
를 사용하여 부모의 인자 있는 생성자를 명시적으로 호출해야만 합니다.
매개변수가 있는 생성자 호출: 질문에서 주신 예시처럼 부모 클래스와 자식 클래스가 동일한 매개변수를 가지는 생성자를 보유하고 있을 때, 자식 클래스의 생성자에서 super(name, price)
와 같이 명시하여 부모 클래스의 해당 매개변수 생성자를 호출할 수 있습니다. 만약 명시적으로 호출하지 않으면 부모의 기본 생성자가 시도되지만, 부모 클래스에 기본 생성자가 없으면 컴파일 오류가 발생합니다.
해당 동작 방식에 대한 유사한 질문과 답변이 있는 게시물들을 참고하시면 도움이 될 것입니다:
이 정보가 이해에 도움이 되었기를 바랍니다. 추가적으로 궁금하신 점이 있으시다면 언제든지 질문해 주세요. 😊
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.