13:15초 명시적 호출이 되지 않는지에 대한 궁금증
안녕하세요 강의 잘보고 있습니다.
13:15초에서 자식 호출 이전에 부모 호출을 통해 Constructor of A가 출력되는데
제가 궁금한 점은 B상속 이후 그러니까
class B extends A
public B() {
super.paint() //해당부분에서 왜 명시적 호출이 이루어지지 않는지가 궁금합니다
제가 생각했을 때는
super.paint()에 대한 매개변수가 지정되지 않았기 때문이다
public B() { 에 void가 추가되지 않았기 때문이다 라고 생각되는데
답변 주시면 감사하겠습니다.
답변 3
0
안녕하세요, 우선 명시적 호출 / 암시적 호출은 생성자에만 사용하는 것입니다.
paint는 메서드로 명시적 호출이라는 단어를 쓰지 않습니다. 메서드는 다 명시적 호출입니다.
부르면 그냥 사용되죠.
부모 생성자는 그냥 무조건 불립니다. 다만 기본생성자가 없을 때는 아무 내용이 없으니까 생략되는 것처럼 보일 뿐입니다. 내용이 없으니까 아무 것도 실행되지 않는 것처럼 보이는 것이죠.
super.paint()는 지금 불린 겁니다. 그러니까 A가 출력이 된 것입니다.
그 다음에 그 안에 있는 draw()가 자식 것으로 가서 D가 출력된 것이죠.
두 번째 줄의 ADCD에 가장 첫 A가 부모에 있는 paint가 실행된 것입니다.
0
명시적 호출이 되는 부분과 부모-자식 기본생성자가 호출되는 경우를 나눠보니 아래와 같은데
두 문장의 어떤 차이점이 있을까요?
명시적 호출이 되는 경우
class B extends A
public void paint()
super.draw()
부모-자식 기본생성자가 호출되는경우
class B extends A
public B()
super,.paint()
0
말씀하시는 명시적 호출이라는 단어를 어디에 쓰고 계신지 모르겠습니다.
메서드는 명시적 호출이라는 것이 없는데, 어떤 것이 실행되는 것을 질문하신 걸까요?
출력값으로 말씀해주시면 답변드리기 수월합니다. 대댓글 부탁드립니다.
0
저는 밑단에 super가 있어서 명시적 호출이라고 생각했는데 아니더군요.
명시적 호출과 기본 생성자를 구분하는 방법은 super라고 생각했는데 윗단의 메서드나 void 등 더 명확하게 구분할 수 있는 요소가 있을까요?
26년 1회 실기 해설 강의
0
33
2
53번 4-1 자료 오류 있는 것 같습니다.
0
61
2
7번문제
0
49
2
C언어 변형문제 9번문제 Pdf 수정요청
0
39
2
메서드 오버드라드
0
41
2
실수
0
41
1
공부 우선순위 우선강의 알려주세요
0
75
1
생성자 호출순서 강의 10번 문제 30분대 질문입니다
0
41
2
25년 2회 기출 5:40 질문입니다.
0
33
2
모의고사1회 3번 파이썬문제
0
65
2
C언어 출제변형 6번 문제
0
43
2
c언어 출제변형 강의 질문
0
24
2
28:40
0
28
2
C : 언어 배열과 문자열 수업자료
0
23
2
파이썬 리스트, 딕셔너리 질문
0
36
2
모의고사 관련 질문 건
1
62
3
자료 내용 오류
0
57
2
정적 변수, 정적 메서드(static) v2
0
43
2
v1.2 와 v0.91 PDF
0
95
1
업캐스팅 (부모형태, 자식생성자)
0
45
2
정보처리산업기사 준비중입니다.
0
68
2
실기 D -6
0
100
2
(기출) 2024년 2회 기출문제 - 이론 포함 22분32초 질문입니다
0
51
3
업캐스팅 문제 풀면 업캐스팅이 상속과 문제풀 때 어떻게 해석해야할지 모르겠습니다.
0
54
2





