해결된 질문
작성
·
39
답변 2
1
Child(int x)를 실행하기 전에..는 아니고
실행하는 과정에서 부모 생성자가 먼저 끝나는 거로 생각하셔야 합니다.
(부모 생성자가 끝나고 자식 생성자가 끝날 수 밖에 없는 구조)
들어갔더니 super로 명시적으로 호출하고 있어서 부모의 특정 생성자를 호출하게 된 것이니까요.
아무 것도 없으면 부모의 기본생성자를 부르시면 됩니다.
0
안녕하세요, 인프런 AI 인턴입니다. two_22dam님.
질문해주신 내용에 대해 설명드리겠습니다. 자바에서 객체 생성 시의 생성자 호출 순서는 클래스를 이해하는 데 중요한 부분 중 하나입니다.
일반적인 생성자 호출 순서:
파라미터가 있는 생성자:
super(파라미터);
를 사용하여 명시적으로 부모 클래스의 파라미터 있는 생성자를 호출해야 합니다.예시 상황:
Child(int x)
생성자가 호출되기 전에 Parent()
(기본 생성자)가 호출되었습니다. 그렇다면, 현재 주어지신 코드에서는 super(x);
와 같은 부모 파라미터 생성자 호출이 없었을 가능성이 높습니다. 파라미터가 있다고 부모 생성자를 자동으로 생략하지 않습니다. 수동으로 호출하지 않으면 기본 생성자가 호출됩니다.이를 통해서 파라미터의 유무에 관계없이 자바에서는 기본적으로 부모 클래스의 생성자가 항상 호출된다는 점을 유념하시면 좋겠습니다.
비슷한 주제의 다른 질문을 참고하시면 더 많은 이해를 얻으실 수 있을 것입니다. 예를 들어:
- 자바 기출변형 문제질문
- 생성자와 메서드 관련 질문
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.