인프런 커뮤니티 질문&답변

Sik님의 프로필 이미지
Sik

작성한 질문수

(2025) 일주일만에 합격하는 정보처리기사 실기

업캐스팅 (부모 형태, 자식 생성자)

업캐스팅 16분 40초 부근입니다.

해결된 질문

작성

·

101

·

수정됨

0

업캐스팅 문제 예시 8.

자식 클래스에만 있는메서드를 호출하면? 관련입니다.

A b = new B(1);

b.paint();

b.draw();

b.specialDraw(); ← 여기가 오류가 난다는 건 이해했습니다.

또한, 이 문제 정답 관련해서

정답:에러

error: cannot find symbol

라고 적혀있는 것은 확인했습니다.

그런데, b.specialDraw(); 부분 이전까지는 정상적으로 작동을 하니까

생성자 of AA10

생성자 BB1

CD까지는 출력이 되어야 하는게 아닌가 궁금합니다.

아니면 b.specialDraw(); 부분 오류 때문에

error: cannot find symbol로만 출력되는건지 궁금합니다.

답변 1

1

주말코딩님의 프로필 이미지
주말코딩
지식공유자

아, 그렇게 생각하실 수도 있겠네요.

프로그램에서 오류가 발생할 때는 크게 2가지로 구별합니다.

첫번째는 컴파일 오류고, 두번째는 런타임 오류입니다.

컴파일 오류라는 것은 소스코드를 실행해보려고 싹~ 훑어봤는데 아예 문법적으로 이상이 있는 것입니다. 이 경우에는 아예 오류가 발생합니다.

 

말씀하신 것처럼 중간에 에러가 나려면, 문법적으로는 다 괜찮고 좋은데 프로그램이 실행되다가 뭔가 이상이 생기는 것입니다. 그럴 때는 앞처럼 정상 수행되었던 것은 보이는 경우가 있습니다.

 

해당 예시는 아예 실행할 때 오류가 납니다.

단, 시험에서는 어디서 오류가 발생하는가? 라고 물어볼 수 있으니까 몇 번째 줄이 이상한 건지는 알고 계셔야겠죠.

Sik님의 프로필 이미지
Sik

작성한 질문수

질문하기