4.1) OCJP/1Z0-851 / 2012-08-28

OCJP (1Z0-851 / 2012-08-28 / Exam C) - 6 번

kkikkodev 2016. 10. 29. 17:41



관련 이론 및 문법

(메소드 오버라이딩 (method overriding) 참고)

http://kkikkodev.tistory.com/86


문제 의도

주어진 소스코드에서 7 라인에 추가했을 때, Lois 클래스를 정상적으로 컴파일하게 만드는 보기를 4 개 고르는 문제입니다.


답안

A, B, E, F


풀이 방법

이 문제는 오버라이딩에 관련한 문제입니다. 소스코드를 보면, Hi 클래스가 있고 안에 m1 과 m2 메소드가 정의되어 있습니다. m1 메소드는 접근제어 지시자가 default 이고, m2 메소드는 접근제어 지시자가 protected 입니다. 그리고 Lois 클래스는 Hi 클래스를 상속하고 있습니다.


7 라인에 들어갈 수 있는 코드는 여럿이 될 수 있는데, 보기를 살펴보면, Hi 클래스의 m1 과 m2 메소드를 overriding 한 메소드들이라는 것을 알 수 있습니다. overriding 할 때, 접근 제한자 범위를 줄일 수는 없기 때문에, 기존의 m1 메소드의 범위가 default (= package) 이기 때문에, 이보다 작은 범위인 private 으로 변환한 보기 C 는 답안 후보에서 제외합니다. (접근 제한자의 범위 : private -> default -> protected -> public 순으로 범위가 넓어짐) 그리고, 기존의 m2 메소드의 범위가 protected 이기 때문에, 이보다 작은 범위인, default 로 변환한 보기 D 와 private 으로 변환한 G 또한 답안 후보에서 제외합니다.


따라서, 답안은 A, B, E, F 가 됩니다.