관련 이론 및 문법

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

http://kkikkodev.tistory.com/86


문제 의도

주어진 소스코드의 17 라인에 삽입하였을 때, Sales 클래스를 정상적으로 컴파일되게 하는 보기를 2 개 고르는 문제입니다.


답안

B, D


풀이 방법

먼저, 소스코드를 보면, Employee 라는 추상 클래스가 있습니다. 이 안에 추상 메소드 getSalesAmount 가 있고, 일반 메소드인 getCommision 메소드가 정의되어 있습니다. 그 아래, Sales 클래스는 Employee 클래스를 상속하고 있습니다.


17 라인에 들어가야 할 문장은 Employee 의 추상 메소드를 overriding 한 문장이 들어가야 합니다. 따라서 double getSalesAmount(){return 1230.45;} 문이 들어가야 하고, 접근 제어 지시자는 더 좁혀지는 범위로 바뀌면 안됩니다. Employee 에서 protected 였으므로, 이보다 작은 범위인 private 과 default (= package) 는 답안 후보에서 제외합니다. (보기 A 와 C 는 답안 후보에서 제외) 


따라서, 답안은 B 와 D 가 됩니다.


by kkikkodev 2015. 8. 28. 03:26