inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

업캐스팅 (부모 형태, 자식 생성자)

부모 및 자식 생성자 출력 관련

해결된 질문

73

dhkdxo12

작성한 질문수 50

0

강의: 업캐스팅(부모 형태, 자식 생성자)

13:29에 나오는 업캐스팅 문제 예시 5번과

15:57에 나오는 업캐스팅 문제 예시 7번 차이에 대해서

A b = new B(1); 둘 다 같은 조건에서

13:29에는 super가 없어도 부모 기본 생성자가 생성되면서 정상 출력이 되는데, 여기에서 super가 없는데 왜 부모 기본 생성자가 출력이 되는지 이해가 안 됩니다.

public B(int i) { System.out.println("생성자 BB" + i); }

 

15:57에는 비록 super가 뒤에 있지만

Public B(int i) {

System.out.println("생성자 BB" + i);

super(10);

문제 예시 5에 따르면 예시 7 역시 부모 기본 생성자가 생성되지 않나요?

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

답변 2

0

주말코딩

안녕하세요!


질문하신 코드 7번 예제는 문법적으로 틀린 거라서 애초에 실행이 안됩니다.


Java는 프로그래밍 코드를 실행하기 전에 컴파일이라는 문법에 맞게 작성되어 있는지 코드를 평가하는 과정이 있습니다. super라는 키워드가 생성자에서 첫 줄에 없으면 그 과정에서 다음으로 넘어가지를 못합니다. 그래서 애초에 아예 실행 자체가 안됩니다.


이건 언어의 스펙이라서 그냥 받아들이셔야 합니다.

0

인프런 AI 인턴

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

업캐스팅과 생성자 호출 순서는 자바에서 중요한 개념입니다. 질문하신 문제에 대해 자세히 설명하겠습니다:

생성자 호출 순서 및 super 키워드의 역할

  1. 기본 생성자 호출 규칙:

    • 자식 클래스의 객체를 생성할 때, 컴파일러는 부모 클래스의 기본 생성자를 자동으로 호출합니다. 이것은 자식 클래스의 생성자에서 super()가 명시되지 않았을 때도 마찬가지입니다.
    • super() 호출은 생략 가능하지만, 생략된 경우 컴파일러가 자동으로 추가합니다. 따라서 부모 클래스의 기본 생성자가 호출됩니다.
  2. 매개변수 생성자를 가진 super의 작동:

    • 만약 자식 클래스의 생성자에서 super(10)과 같은 형태로 부모 클래스의 매개변수 있는 생성자를 명시적으로 호출하면, 이 경우에는 명시된 부모의 생성자가 호출됩니다.
    • 이 때, super()가 호출되지 않으므로 부모의 기본 생성자는 호출되지 않습니다.

예시 5번과 7번 코드 비교

  1. 13:29의 예시 5번:

    • super()가 명시되지 않았더라도 부모의 기본 생성자가 호출됩니다. 따라서 “생성자 of A”와 같은 형식으로 부모의 기본 생성자 출력이 발생합니다.
  2. 15:57의 예시 7번:

    • super(10);이 명시적으로 부모 클래스의 매개변수 생성자를 호출하고 있습니다. 따라서 이 예시에서는 부모의 기본 생성자가 호출되지 않습니다. 다만, 자식 생성자의 코드가 실행되므로 자식 생성자 출력이 먼저 나타나게 됩니다.

관련 유사 질문을 확인하세요

  • 업캐스팅과 관련하여 이전 질문과 답변을 통해 비슷한 사례를 이해하시는 것이 좋습니다.
  • - 업캐스팅 문제 예시 6에서는 생성자 호출 순서와 super 키워드에 대한 설명이 있습니다.
  • - 업캐스팅 질문에서는 비슷한 사례를 다루고 있습니다.

이를 바탕으로 생성자 호출 순서를 이해하고 코드 작동 방식을 보다 명확히 알 수 있을 것입니다.

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

26-2 코드문제

0

3

1

15분 48초 질문

0

14

1

26-1년도 이론문제 재탕

0

26

1

26-1년도 코드문제 재탕

0

20

0

이론재탕만 눈치챘어도

0

35

1

25-3년도 이론문제 재탕

0

22

1

25-3년도 코드문제 재탕

0

18

0

출력값 문의

0

20

2

25-2 분기커버리지

0

24

0

25-2 이론 재탕

0

32

1

25-1 이론 재탕

0

29

1

서브넷 마스크

0

40

1

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

0

59

2

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

0

46

2

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

0

88

2

부모의 생성자 출력 관련

0

41

2

24-3 이론파트 재탕문제

0

47

0

누락코드

0

40

1

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

0

58

3

24-2 이론 파트 재탕

1

56

1

모의고사 5회

0

46

1

12분 10초 func(values, 0, 1)을 넣을 때

0

42

1

모의고사 1회 4번 문제와 관련한 질문이 있습니다.

0

48

2

23- 3 재탕문제

0

69

1