업캐스팅 강의 5분대 내용입니다.
바로 이전 강의에서는
자식이 부모에게 없는 것을 호출이 가능하였는데
이번 강의에서는 chargeBattery 부분이 없어서 에러가 발생한다고 하셨습니다.
에러가 나오는건 '업캐스팅' 일 때만 나오는 걸까요?
답변 1
0
안녕하세요,
답변은 좀 애매한데, 맞으면서도 아닙니다.
(Only 부모로 만들었는데 자식을 호출하면 에러가 발생함)
업캐스팅 형태에서 저렇게 나오면 헷갈리실까봐 특별히 짚어드린 것입니다.
다른 형태에서는 저럴 이유가 없습니다.
부모 형태 = new 부모생성자();
자식 형태 = new 자식생성자();
이렇게 되는 경우에서는 헷갈릴게 없으니까요.
저기에서 만약에 부모 형태로 만들었는데 자식 메서드를 접근하면? 당연히 본인 필드가 아니니까 오류가 납니다.
자식에서는 부모를 아예 명시적(super)으로 부를 수 있었죠?
감사합니다.
업캐스팅은 전체적으로는 부모의 느낌이나, 자식을 갈아끼울 수 있는 형태라고 생각하시면 좋습니다.
0
상속과 생성자 호출순서에서 3분대의 bark는 본인 자체가 자식이어서 그렇습니다.
위에 보시면 Animal이 아니라 Dog dog = new Dog(); 입니다.
형태: Dog (자식)
변수명: dog (소문자)
new: 새로운 메모리 크기를 할당해서 객체를 생성하라는 키워드
Dog(): 매개변수 없는 Dog 클래스의 생성자 (기본 생성자라고도 불림)
그냥 자식 그 자체입니다. (업캐스팅도, 부모 그자체도 아님)
여기서 부모인 super class는 Animal입니다.
현실에서 비유하자면
부모에게서 자식이 자전거와 컴퓨터를 받았는데, 자식이 열심히 일해서 자동차를 산 것이지요.
자전거와 컴퓨터야 부모에게서 물려받았지만 내가 재정의(수리하거나 부품을 바꿔낌)하면 되는데
자동차는 내가 내돈으로 샀으니 그냥 내꺼입니다. (오로지 자식의 소유)
그래서 자동차는 사용할 수 있습니다.
그런데 부모 형태로 만들었다고 생각하면 어떨까요?(부모클래스명 변수명 = new 부모생성자();)
부모는 애초에 자동차가 어떻게 생긴지도 모릅니다. 평생 자전거와 컴퓨터만 봤으니까요.
그래서 실행할 수 없습니다.
영상 다운로드는 안되나요?
0
8
0
26년2회 실기기출은 언제쯤...
0
52
2
이론 공부법 요약본 버전 업데이트 문의
0
35
2
정처기 필기 준비할때 이 이론을 다시 외워도 될까요?
0
59
2
조건 반복문 질문: for 문 ?
0
66
1
정처기 26-2회. 9번 질문드립니다!
0
86
1
이론 보면서 질문이 있습니다.
0
82
2
정보처리기사 실기 26년 2회 SRT 스케줄링 문제 단위 질문
0
93
2
유튜브(정보처리기사 실기 | 26년 2회 기출문제 코드 해설)
0
155
2
262 정처기 실기 C언어코딩
0
53
1
정보처리기사 262 실기 Hash(해시) 질문
0
86
2
static 변수 질문입니다.
0
66
2
파이썬 4강 질문입니다.
0
73
2
모의고사 1회 3번문제
0
95
3
41강 30:10
0
70
2
이론 공부법 질문 있습니다.
0
96
2
부모의 생성자 관련 질문
0
70
2
시험지 문제에 필기해도 되나요?
0
93
3
41강 11:23
0
61
2
4강파이썬 질문입니다
0
58
2
try-catch 핸들러명
0
72
2
36강 3:48
0
70
2
35강 18:27
0
69
2
자식 코드 내 super() 생략
0
63
2





