업캐스팅 질문
12:50의 업캐스팅 문제 예시4는 super.paint()이 전에 A를 먼저 참조하고 Constructor of A를 쓰는데 15:39의 업캐스팅 문제 예시6은 왜 super(10)이 있는데 바로 생성자 of AA10이 되나요?? super.paint와 super(10)의 차이인가요?
답변 2
0
안녕하세요! 말씀하신 두 문제 다 똑같이 부모 것을 먼저 참조하고 있습니다.
super.paint() 전에 super()가 생략되어 있기 때문에 부모에 있는 Constructor of A를 쓴 것이고,
유행 6번에서는 super(10)이 명시적으로 있기 때문에 A의 파라미터 1개짜리인 생성자 of AA 10을 출력한 것입니다.
둘 다 부모의 생성자를 먼저 참조한다는 것에서 같은 원리입니다.
정확히 어떤 부분이 더 헷갈리시는 것인지 대댓글로 추가 질문 부탁드립니다!
0
아하!! 그러면 super()는 생성자 오버로딩 경우에 다 존재 하는데, super()는 생략이 가능해서 다 생략되어있고, super(10)은 생략을 못해서 적혀있는건가요?
0
오버로딩이라는 것은 같은 이름인데 파라미터로 구분한다는 의미이고,
그것과 상관없이 명시적으로 부모 생성자를 호출하지 않는 구문에서는 다 super()가 생략되어 있다고 보시는 것이 맞습니다!
쓰든 안쓰든, 다른 파라미터 있는 부모생성자를 안 부르면 무조건 기본생성자를 부른다는 의미입니다.
0
안녕하세요, 인프런 AI 인턴입니다. 뽀로님.
업캐스팅과 관련하여 두 가지 예시에서의 차이를 이해하는 것은 중요한 부분입니다. 생성자 호출과 메서드 호출 사이에는 차이가 있으며, 이런 차이가 바로 질문하신 사례에 적용됩니다.
super.paint()와 super(10)의 차이
super.paint():- 이는 부모 클래스의
paint()메서드를 호출합니다.super는 메서드를 명시적으로 호출할 때 사용되며, 부모 클래스에 정의된 메서드를 자식 클래스에서 사용하고자 할 때 이 방식으로 호출합니다.
- 이는 부모 클래스의
super(10):- 생성자 초기에 부모 클래스의 특정 생성자를 호출합니다. 이 경우에는 매개변수가 있는 부모 클래스의 생성자를 호출하는 것으로, 인스턴스가 생성될 때 호출순서를 의미합니다.
- 따라서,
super(10)을 통해 부모의 매개변수가 있는 생성자가 먼저 실행되어 “생성자 of AA10”이 출력됩니다.
- 생성자 초기에 부모 클래스의 특정 생성자를 호출합니다. 이 경우에는 매개변수가 있는 부모 클래스의 생성자를 호출하는 것으로, 인스턴스가 생성될 때 호출순서를 의미합니다.
질문하신 내용의 맥락에서 보면, super.paint()는 메서드 호출을 통해 부모 클래스의 로직을 수행하는 것이고, super(10)은 인스턴스 생성시 부모 클래스의 생성자를 특정하여 호출하여 객체 초기화 시 특정한 로직을 수행하는 것입니다.
관련 질문 URL
이러한 차이를 알면 코드에서 왜 다른 출력이 나오는지를 보다 명확히 이해하실 수 있습니다. 해당 차이는 자바의 상속과 객체 초기화에 대한 이해를 돕습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
부모 및 자식 생성자 출력 관련
0
1
1
부모 및 자식 생성자 출력
0
1
1
9강 35분경 질문있습니다
0
19
1
11강 3:20
0
20
1
10강 11:42
0
19
1
9강 26:23
0
26
1
9강 23:46
0
21
1
코드 중간에 . 붙은건 뭐라고 봐야할까요?
0
35
2
설명중 단어 의미 해석 문제.
0
25
1
수강 섹션마다 옆에 자료 다운로드 버튼이 있는데. 다운받으면 무슨내용이 있는건가요?
0
20
1
SQL 집중학습
0
40
1
NULL과 0
0
40
2
26년 1회 기출문제 11번 질문드립니다
0
43
1
업캐스팅 문제예시5 & 업캐스팅 문제 예시 6
0
42
2
V1.2 VS V.091
0
48
2
split('T')일때는 T만 제거되는거고 공백은 제거되지 않는 건가요?
0
50
2
파이썬 언어 업데이트, 언어별 학습자료 업데이트
0
48
2
C, java, python 언어 기출문제 강의 질문
0
51
2
1:26 에서 반복문 i[1] 이니까 0 다음 두번째 항목들 아닌가요
0
49
2
d
0
45
2
출력값
0
43
2
(기출) 2023년 3회 코드해석 문제의 1:10입니다.
0
50
2
23년도 2회 c언어 0:03 n[(i+6)%5] 도 가능한건가요?
0
50
2
정처기 질문
0
53
2





