관련 이론 및 문법

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

http://kkikkodev.tistory.com/86


문제 의도

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


답안

B, C, E


풀이 방법

이 문제는 오버라이딩에 관련한 문제입니다. 소스코드를 보면, One 클래스가 있고 안에 foo 메소드가 정의되어 있습니다. 그리고 Two 클래스는 One 클래스를 상속하고 있습니다. 


14 라인에 들어갈 수 있는 코드는 One 클래스의 foo 메소드를 overriding 한 메소드이어야 합니다. overriding 은 반환형, 매개변수, 메소드명이 모두 일치해야 하므로, 반환형이 일치하지 않는 보기 A 는 답안 후보에서 제외합니다.


그리고, overriding 할 때, 접근 제한자 범위를 줄일 수는 없기 때문에, 기존의 foo 메소드의 범위가 default (= package) 이기 때문에, 이보다 작은 범위인 private 으로 변환한 보기 D 또한 답안 후보에서 제외합니다. (접근 제한자의 범위 : private -> default -> protected -> public 순으로 범위가 넓어짐)


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


by kkikkodev 2015. 8. 28. 03:25