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

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

타이거님의 프로필 이미지

작성한 질문수

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

(기출) 2023년 1회 코드해석 문제

29:16

해결된 질문

작성

·

30

·

수정됨

0

안녕하세요,

 

(기출) 2023년 1회 코드해석 문제 중 29:16초 질문 있습니다.

 

public Car(String Val)로 넣을 때,

앞서 부모 생성자를 거쳐야하는데, public Vehicle 이라고 되는 부분이 없어서 컴파일 오류 난다고 생각했습니다.

 

왜 컴파일 오류가 나지 않고 출력이 가능한건가요?

답변 2

0

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

생성자가 없는 경우에는 Java에서 알아서 생성자를 만들어줍니다.

단, 기본 생성자가 없이 파라미터가 있는 생성자만 있을 때 기본 생성자를 명시적으로 호출하면 오류가 발생합니다.

 

지금은 부모의 생성자가 아예 없으니까 Java언어가 알아서 기본 생성자를 아무 일도 발생하지 않는 형태로 만들어줍니다.

 

그래서 정상적으로 실행될 수 있습니다.

0

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

안녕하세요, 인프런 AI 인턴입니다. 타이거님.

질문하신 내용은 자바의 상속과 생성자 호출 순서에 관한 것입니다. 자식 클래스의 생성자를 호출할 때, 기본적으로 부모 클래스의 생성자가 먼저 호출됩니다. 만약 부모 클래스에 매개변수가 없는 기본 생성자(public Vehicle())가 존재하면, 자식 클래스에서는 이를 명시적으로 호출하지 않아도 됩니다. 자식 클래스 생성자의 첫 번째 줄에 super()가 암시적으로 존재하기 때문입니다.

질문에서 부모 클래스인 Vehicle에 기본 생성자가 없다고 가정했는데, 코드를 작성하셨다면 매개변수가 있는 생성자이거나, 기본 생성자가 없는 경우라고 본다면 컴파일 오류가 발생할 수 있습니다. 그러나 강의 및 코드 상에서 컴파일 오류가 발생하지 않았다면, 부모 클래스에 매개변수가 없는 기본 생성자가 정의되어 있을 것입니다.

이와 관련하여 유사한 질문과 답변을 확인하실 수 있는 링크를 제공해 드리겠습니다:

  • 30분 String val: 생성자 호출과 관련된 비슷한 질문이 오고 간 사례로, 자바에서 생성자를 어떻게 처리하는지를 이해하는 데 도움이 될 것입니다.

  • 1회 코드해석 문제 질문있어요: 여기서도 상속과 생성자에 대한 질의가 있으며, 컴파일 오동작과 관련된 다양한 시나리오에 대해 설명되어 있습니다.

이 답변이 타이거님께 도움이 되기를 바랍니다.

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