관련 이론 및 문법

(접근 제어 지시자 참고)

http://kkikkodev.tistory.com/96


문제 의도

주어진 소스코드를 컴파일하여 실행한 결과를 고르는 문제입니다.


답안

E


풀이 방법

주어진 소스코드를 보면, 클래스만 3 개에, 상속관계가 복잡하게 얽혀 있는 것을 볼 수 있습니다. 하지만, 에러가 나는 부분은 간단합니다. 26 라인에 보면, Yen 클래스에서 부모 클래스인 Money 클래스의 멤버 변수인 country 에 접근하기 위해서, super.country 를 사용하고 있는데, 실제로, 22 라인의 country 멤버 변수가 선언된 모습을 보면, private 으로 선언되어 있는 것을 알 수 있습니다. 따라서, 자식 클래스인 Yen 클래스에서 직접 접근이 불가능하게 됩니다. 만약, 에러를 고치려고 한다면, 22 라인의 private 을 최소한 protected 로는 변경해야 할 것입니다. 결론적으로, 26 라인에서 컴파일 에러가 나기 때문에, 답안은 E 가 됩니다.


by kkikkodev 2015. 7. 13. 23:33