정보처리기사 실기JavaJava - 오버라이딩/동적 바인딩난이도 4SHORT_ANSWER

정보처리기사 실기 Java - 오버라이딩/동적 바인딩 기출문제 #11317

문제

다음은 Java 코드이다. 올바른 출력 결과를 작성하시오.

정답

BDCDD

BDCDD

해설

참조 변수는 A 타입이지만 실제 객체는 B 이므로 오버라이딩된 메서드는 동적 바인딩으로 B 의 것이 호출된다. b.paint() 는 B.paint() 를 실행한다. super.draw() 는 A.draw() 를 호출해 "B" 출력 후 draw() 를 다시 호출하는데, 이때 draw() 는 동적 바인딩으로 B.draw() 가 실행되어 "D" 가 출력된다(무한 재귀가 아님). 이어 "C" 출력, this.draw() 로 B.draw() 가 실행되어 "D" 가 출력된다. 그 다음 b.draw() 는 B.draw() 로 "D" 를 출력하므로 최종 결과는 BDCDD 이다.

정보처리기사 실기 시험 준비 가이드

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.