부모의 생성자 관련 질문
1
3 asked
안녕하세요
문제를 풀면서 항상 헷갈리는 부분이 있어 글 남기게 되었습니다.
"7분 39초"
를 보면 Child c = new Child ()
해서 위에 있는 Child()
로 올라가 super() 로 부모클래스 방향으로 가는건 알겠습니다
혼자 문제를 풀다보면 올라갔는데도 부모를 안하고 쭉 내려오는 경우가 있던데 그럴땐 child() 없는 경우엔 그냥 쭉 내려가도 괜찮은 걸까요?
new 생성자, 위로 생성자 올라가서 () 이렇게 괄호가 있으면 무조건 부모 () <-값없는 기본 () 문장으로 올라간다! 로 이해하면 되는지 궁금합니다
Answer 1
0
안녕하세요, 인프런 AI 인턴입니다. 김보경님.
자바에서 생성자의 호출 순서에 대해 질문을 주셨네요. 생성자 호출 순서는 자바의 객체지향 구조를 이해하는 데 중요한 부분입니다. 아래에 관련 설명을 드리겠습니다.
생성자 호출 순서 이해하기
객체 생성 시 생성자 호출:
Child c = new Child();로 객체를 생성할 때,Child클래스의 생성자가 호출됩니다.
- 하지만 이때
Child생성자 호출 전 부모 클래스의 생성자가 먼저 실행됩니다. 이는 상속 관계 때문에 필수적인 순서입니다.
super()의 암시적 호출:
Child()내에서super()가 명시되어 있지 않아도 컴파일러가 자동으로super()를 삽입합니다.
- 이는 부모 클래스의 기본 생성자를 호출하기 위한 것입니다. 따라서
super()가 호출되면서 부모 클래스의 생성자가 먼저 실행됩니다.
괄호의 유무와 호출 흐름:
- 생성자 호출 시 괄호 안에 아무 값이 없는 경우 (
super();), 기본 생성자를 호출합니다.
- 만약 부모 클래스에 다른 생성자(파라미터가 있는)가 있더라도 명시적으로 호출하지 않는다면 기본 생성자가 호출됩니다.
- 생성자 호출 시 괄호 안에 아무 값이 없는 경우 (
질문에서 말씀하신대로, 어린 클래스 생성자에서 명시적으로 부모 생성자를 호출하지 않는다면, JVM은 기본 생성자를 자동으로 호출하게 됩니다. 이는 생성자의 표준적인 동작이므로 부모 생성자가 없이 바로 내려가는 경우는 없습니다.
더 깊이 있는 이해를 원하신다면 아래의 유사 질문 링크를참고 가능합니다:
- Java 생성자 호출 순서와 super()의 역할: 예제와 함께 생성자 호출 순서의 규칙에 대해 설명합니다.
- 생성자 호출과 관련된 전문가 답변: 생성자 호출의 일반적인 패턴과 예외 상황을 다룹니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
이론 공부법 질문 있습니다.
0
0
0
시험지 문제에 필기해도 되나요?
0
13
3
41강 11:23
0
14
2
4강파이썬 질문입니다
0
7
2
try-catch 핸들러명
0
17
2
36강 3:48
0
24
2
35강 18:27
0
21
2
자식 코드 내 super() 생략
0
23
2
출력질문
0
27
2
31강 4:06
0
26
2
파이썬 학습자료가 강의 자료와 다릅니다.
0
53
3
섹션 2 - 9강 강의자료 다운로드 문제
0
36
3
29강 3:09
0
29
2
28강 6:42
0
33
2
22강 17:33
0
34
2
75강 26년 1회 코드 문제 해석 강의 질문 드립니다.
0
40
2
모의고사
0
51
1
17강 28:26
0
41
2
C언어 기출문제 변형에서 6번 문제입니다. 20:56
0
46
3
17강 22:38
0
39
2
16강 2:17
0
50
2
부모 및 자식 생성자 출력 관련
0
52
2
부모 및 자식 생성자 출력
0
51
2
9강 35분경 질문있습니다
0
45
2

