inflearn logo
강의

講義

知識共有

(2026年最新!) 一週間で合格する情報処理技師実技

継承とコンストラクタの呼び出し順序

부모의 생성자 출력 관련

解決済みの質問

16

dhkdxo12

投稿した質問数 49

0

상송과 생성자 호출순서 10:23


public  class  Main  {

public  static  void  main(String[]  args)  {           ElectricCar  tesla  =  new  ElectricCar("Tesla",  2021,  75);  

}

}


위 코드에서 출력 값이 아래와 같이 출력되는 것은 이해했습니다.

Car(Tesla,  2021)

ECar(75)


만약 메인 구문이 아래와 같이 객체가 2개 적혀있다면 출력 값을 어떻게 되나요?

public  class  Main  {

public  static  void  main(String[]  args)  {   ElectricCar  tesla  =  new  ElectricCar("Tesla",  2021,  75);

ElectricCar  toyota  =  new  ElectricCar("toyota",  2023,  80);  

}

}

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

回答 2

0

weekendcode

안녕하세요. 질문 주신 코드는 생성자가 2번 불립니다.

질문 의도가 맞으신지는 모르겠으나, 우선 답변드립니다.


각 객체를 new로 만들 때마다 생성자가 따로 실행되므로, 순서대로 두 번 출력됩니다.

Car(Tesla, 2021)
ECar(75)
Car(toyota, 2023)
ECar(80)

tesla를 만들 때 부모 생성자, 자식 생성자 순으로 실행되고, 그다음 toyota를 만들 때 같은 과정이 처음부터 다시 실행됩니다. 두 객체는 서로 영향을 주지 않습니다.


주의하실 것은 질문 주신 10:23에는 super(model, year);를 주석 처리한 상태입니다.

자바가 자동으로 super();를 넣어 기본 생성자 Car()를 호출하므로 출력은 이렇게 바뀝니다.

Car()
ECar(75)
Car()
ECar(80)

이 경우 model과 year는 값이 들어가지 않아 각각 null, 0으로 남습니다.


그래서 최종 출력값은

Car()
ECar(75)
Car()
ECar(80)

입니다.



전체 코드와 출력문을 보여드리겠습니다.

BetterShot_2026-10-18-15-28-33.png


0

communityai8509

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

new ElectricCar(...)가 두 번 실행되므로 객체가 생성될 때마다 부모 클래스인 Car의 생성자가 먼저 호출되고, 이어서 자식 클래스인 ElectricCar의 생성자가 호출됩니다.

따라서 출력 순서는 다음과 같습니다.

Car(Tesla, 2021)
ECar(75)
Car(toyota, 2023)
ECar(80)

첫 번째 객체 생성 과정은 다음과 같습니다.

ElectricCar tesla = new ElectricCar("Tesla", 2021, 75);
  1. Car("Tesla", 2021) 호출
  2. Car(Tesla, 2021) 출력
  3. ElectricCar("Tesla", 2021, 75)의 나머지 생성 과정 실행
  4. ECar(75) 출력

두 번째 객체도 동일하게 부모 생성자가 먼저 실행된 후 자식 생성자가 실행됩니다.

ElectricCar toyota = new ElectricCar("toyota", 2023, 80);

즉, 객체를 생성하는 new ElectricCar(...)가 실행될 때마다 부모 생성자와 자식 생성자가 각각 한 번씩 호출됩니다.

관련된 생성자 호출 및 기본 생성자 내용을 다룬 기존 답변도 참고해 주세요.

이 글에서도 new 뒤에 작성된 생성자가 호출되며, 자식 객체를 생성할 때 부모 생성자가 먼저 호출된다는 점을 설명하고 있습니다.

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

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

0

5

1

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

0

16

1

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

0

40

2

이론파트 재탕문제

0

19

0

누락코드

0

20

1

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

0

33

3

이론 파트 재탕

0

36

1

모의고사 5회

0

32

1

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

0

38

1

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

0

40

2

재탕문제

0

57

1

재탕문제

0

38

0

파이썬 추가 코드

0

52

1

배열 포인터 출력 표시

0

53

2

포인터 증감 또는 값 증감

0

53

2

배열 포인터 함수 관련

0

52

2

실기 이론 통합 요약본 버전

0

66

2

업캐스팅 3번 문제 예시

0

63

2

push pop 설명 되어있는 강의가 몇강인가요?

0

52

1

모의고사 파일오류

1

84

3

모의고사 다운

0

58

1

업캐스팅 원칙

0

70

2

6분46초

0

61

2

공략법

0

71

1