inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

김영한의 실전 자바 - 기본편

9.상속.pdf 26페이지에 주석 질문이요

285

jye222

작성한 질문수 1

0

저 주석은 잘못된거죠?

java 객체지향

답변 1

2

Kim DongKyun

Java에서 상속을 받는 클래스는 반드시 super() 를 호출해서 상속을 하는 부모 클래스의 생성자를 호출해야 하는데요

이 때 부모 클래스 (Class A) 가 다른 생성자 없이 기본 생성자만 존재한다면, super(); 를 호출하지 않아도 자바에서 대신 처리해주므로 명시적으로 선언하지 않아도 된다는 뜻으로 보입니다!

 

image

만약 아래와 같이 부모 클래스인 ClassA 가 기본 생성자가 아닌 패러미터를 가지는 생성자를 가질 시

 

image

하위 클래스(Class B) 의 생성자에서는 super(any int); 를 반드시 호출해야 합니다.

image

 

즉 주석의 기본 생성자 생략 가능 주석은

 

  1. 부모 클래스가 기본 생성자만 존재 할 시

  2. 기본 생성자 호출 super(); 는 사용해도, 안해도 무방하다(생략 가능하다)

는 의미로 보이네요!

0

jye222

this(a, 0); 옆에 주석을 말씀하시는건가요?

0

Kim DongKyun

넵 맞습니다!

this(), super() 는 모두 생성자 매서드의 맨 첫 부분에서 선언되어야 하는데요

image

위처럼 ClassA(부모 클래스) 가 생략 가능한 기본 생성자를 가지지 않으면 this();(자기 자신의 생성자) 호출이 불가능합니다.

즉 말씀해주신 부분에서도 부모 클래스의 기본 생성자가 숨겨져 있습니다.

하지만

 this(a, 0); // 기본 생성자 생략 가능

주석의 위치 때문에 조금 모호한 표현처럼 느껴지긴 하네요 😢

질문있습니다

0

30

1

1번 문제 질문입니다.

0

35

1

음악플레이어 문제 중 코드질문

0

28

1

9장 상속 문제와 풀이 질문

0

39

1

강의 자료에 사소한 오타가 있습니다.

0

50

2

매서드 참조값 반환??

0

67

1

접근제어자 - 쇼핑카트 문제에서 상품출력 부분 메서드

0

72

1

자바 기본편 - .(dot)에 관한 질문입니다!

0

85

1

공부방법

0

77

2

상속관계에서 멤버 변수는 오버라이딩 되는 개념이 아닌가요?

0

82

1

static method 질문

0

67

1

캡슐화 문제풀이 ShoppingCart 요구사항에 문제가 있어보입니다. 피드백 주세요

0

98

1

Method1에서 Student 객체

0

74

1

3강 18. null 질문

0

69

1

this 와 super의 호출 순서는 부모-자식관계 떄문만인가요?

0

77

1

팩토리 메서드 패턴과 일반 생성자 사용의 장단점

0

97

1

문의

0

104

1

9장 상속 문제와 풀이 부분 궁금한게 있어서 질문드립니다

0

90

1

상속과 그에 따른 메모리 구조 질문

0

62

1

call메소드에서 멤버에 접근하는 방식을 이해 못 했습니다

0

74

1

수강기한

0

136

1

기본편 객체지향 프로그래밍에 대한 정의

0

88

1

섹션10 상속 메모리 구조 및 문제 관련 질문

0

87

1

추가 지식 학습

0

153

2