inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

(2027 대비!) 일주일만에 합격하는 정보처리기사 실기

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

31분 50초 JAVA 문제

해결된 질문

93

whks

작성한 질문수 2

0

안녕하세요

31분 50초

Child() 함수에 this(5000) 이 있는데 부모를 호출 할 수 있나요?

저는

  1. super, this 아무것도 없을때 명시적으로 super 는 없지만 자동으로 부모를 호출한다

  2. super 가 있으면 부모를 호출한다.

  3. super, this 는 함께 못 쓰인다.

이렇게 알고 있어서, 문제를 풀 때
super 가 명시적으로 없어도 항상 숨어있다고 생각하고 접근했습니다.

그래서 Child() 생성자에 this 가 있으면 super 는 실행되지 않는다고 생각해서
부모 생성자 호출 과정을 제외하고 풀었는데, 결과가 다르게 나와서 헷갈렸습니다

this 가 있는데도 부모 호출이 맞는지 궁금합니다.

그리고 부모를 호출한다면 child() -> parent() -> parent(int x) -> child(int x) 순서가 맞는지도 알려주세요

python java c 정보처리기사 정보처리산업기사

답변 2

0

주말코딩

안녕하세요!

부모는 언제든지 가장 마지막에 암묵적으로라도 호출됩니다.

이 경우에는 Java 컴파일러가 this.x = x; 위에 super()를 삽입해줍니다.

 

생성자 체인은 우리가 C언어에서 여러 개의 함수를 순서대로 호출하듯이,

역으로도 실행순서가 순서대로 내려와야합니다. 그래야 제대로 출력이 될테니까요.

 

그래서 순서는

Child() -> Child(int x) -> 그 안에서 super() -> super의 this(500)이 호출되는 형식입니다.

 

특히 저 super()는 보이지는 않지만 Java가 삽입해주는 것입니다.

생성자 체인 끝에서 무조건 부모를 한 번은 호출해야합니다.

부모 필드가 초기화되지 않으면 자식은 태어날 수 없습니다.

 

일단 저렇게 호출은 됐고, 실행은 그 반대 순서대로 됩니다.

좋은 질문 감사드립니다.

0

인프런 AI 인턴

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

자바에서의 생성자 호출 순서는 복잡할 수 있지만, 클래스 상속 구조에서의 기본적인 규칙 몇 가지를 이해하시면 명확해집니다. 질문하신 부분을 하나하나 설명드리겠습니다.

생성자 호출 순서 및 규칙

  1. 자동적으로 부모 생성자 호출:

    • 자바에서는 자식 클래스의 생성자가 호출될 때, 명시적으로 super()를 추가하지 않더라도 부모 클래스의 기본 생성자를 자동으로 호출합니다. 이는 컴파일러가 super();를 암묵적으로 추가하기 때문입니다.
  2. super()와 this() 호출:

    • 하나의 생성자 내에서는 super()와 this() 중 하나만 사용할 수 있습니다. 즉, 두 키워드를 같은 생성자 안에서 동시에 사용할 수 없습니다.
    • this(5000)이 자식 클래스의 생성자에서 사용되면, 같은 클래스의 다른 생성자를 호출하는 것을 의미합니다. 따라서 그 생성자가 어떤 방식으로 부모 생성자를 호출하는지에 따라 부모 생성자 호출 여부와 호출 시점이 달라집니다.
  3. 호출 순서:

    • 자식 생성자에서 this(arguments)로 다른 생성자를 호출한다면, 여전히 부모의 생성자를 호출할 기회가 있습니다. 이 다른 생성자가 첫 번째 줄에서 super()를 호출하거나 기본 생성자를 호출한다면 결국 부모 생성자가 호출됩니다.

상황 예시

  • 만약 Child() 생성자에서 this(5000)을 사용하고, 그 외 Child 클래스의 다른 생성자에서 부모의 생성자 호출을 명시적으로 다루고 있다면 부모 생성자는 호출됩니다.
  • 일반적으로 생성자의 호출 순서는: Child() -> Child(int x) -> Parent() -> Parent(int x)와 같이 진행될 수 있습니다.

추가적인 이해를 돕기 위한 참고 링크를 제공해 드립니다:

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

정처기 2026-3 실기 문의

0

85

2

정처기 실기 3회 컴싸 사용 여부

0

54

1

모의고사 1 회 2번문제 중

0

73

2

26-2 이론문제 재탕

1

54

1

26-2년도 코드문제

0

38

0

26-2 코드문제

0

43

1

15분 48초 질문

0

60

2

26-1년도 이론문제 재탕

0

68

1

26-1년도 코드문제 재탕

0

48

0

이론재탕만 눈치챘어도

0

75

1

25-3년도 이론문제 재탕

0

59

1

25-3년도 코드문제 재탕

0

43

0

출력값 문의

0

56

2

25-2 분기커버리지

0

47

0

25-2 이론 재탕

0

70

1

25-1 이론 재탕

0

54

1

서브넷 마스크

0

54

2

모의고사 1회 계산문제 2개 맞았는데

0

70

2

업캐스팅 문제 예시 4번 부모 호출

0

51

2

모의고사 자료 해설이 너무 불친절하네요.

0

96

2

부모의 생성자 출력 관련

0

49

2

24-3 이론파트 재탕문제

0

58

0

누락코드

0

46

1

다차원 배열 포인터 질문있습니다

0

72

3