inflearn logo
강의

Course

Instructor

(2026 Latest!) Pass the Information Processing Engineer Practical Exam in just one week

Upcasting (Parent type, Child constructor)

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

Resolved

57

dhkdxo12

43 asked

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 정보처리기사 정보처리산업기사

Answer 2

0

weekendcode

안녕하세요!


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


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


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

0

communityai8509

안녕하세요, 인프런 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 키워드에 대한 설명이 있습니다.
  • - 업캐스팅 질문에서는 비슷한 사례를 다루고 있습니다.

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

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

조건 반복문 질문: for 문 ?

0

27

0

정처기 26-2회. 9번 질문드립니다!

0

51

1

이론 보면서 질문이 있습니다.

0

60

2

정보처리기사 실기 26년 2회 SRT 스케줄링 문제 단위 질문

0

62

2

유튜브(정보처리기사 실기 | 26년 2회 기출문제 코드 해설)

0

77

2

262 정처기 실기 C언어코딩

0

33

1

정보처리기사 262 실기 Hash(해시) 질문

0

64

2

static 변수 질문입니다.

0

47

2

파이썬 4강 질문입니다.

0

59

2

모의고사 1회 3번문제

0

76

3

41강 30:10

0

53

2

이론 공부법 질문 있습니다.

0

79

2

부모의 생성자 관련 질문

0

54

2

시험지 문제에 필기해도 되나요?

0

69

3

41강 11:23

0

49

2

4강파이썬 질문입니다

0

47

2

try-catch 핸들러명

0

58

2

36강 3:48

0

58

2

35강 18:27

0

55

2

자식 코드 내 super() 생략

0

51

2

출력질문

0

67

2

31강 4:06

0

58

2

파이썬 학습자료가 강의 자료와 다릅니다.

0

85

3

섹션 2 - 9강 강의자료 다운로드 문제

0

70

3