글
관련 이론 및 문법
(메소드 오버라이딩 (method overriding) 참고)
http://kkikkodev.tistory.com/86
문제 의도
주어진 보기 중에서 2 개의 메소드를 각각 삽입했을 때, Three 클래스가 정상적으로 돌아가는지 고르는 문제입니다.
답안
C, D
풀이 방법
주어진 소스코드를 보면, 총 3 개의 클래스가 있는 것을 알 수 있습니다. One 클래스 안에는 One 형을 반환하는 foo 메소드가 있고, 이 One 클래스를 상속하는 Two 클래스에는 마찬가지로 이를 overriding 한 One 형을 반환하는 foo 메소드가 있고 마지막으로 Three 클래스는 Two 클래스를 상속하고 있습니다.
보기들을 보면 모두 메소드명이 foo 인 것을 알 수 있습니다. 즉, overriding 한 메소드를 고르는 문제입니다. overriding 의 기본 원칙은 부모의 메소드와 이름이 동일해야 하고, 반환형, 매개변수까지 동일해야 한다는 것입니다. 따라서, 보기 A 는 반환형이 void 이므로 답안 후보에서 제외합니다. 또한 보기 B 도 반환형이 int 이므로 답안 후보에서 제외합니다. 일단 부모 클래스의 foo 메소드의 반환형이 One 이므로 이와 동일한 보기 D 는 답안이 됩니다. 메소드 오버라이딩시 반환형은 부모 클래스의 메소드의 반환형보다 더 상위 클래스가 와서는 안되므로, One 보다 더 상위클래스를 반환하고 있는 보기 E 도 답안 후보에서 제외합니다. 보기 C 는 Two 형이 One 의 하위 클래스이므로 답안이 됩니다.
따라서 C 와 D 가 답안이 됩니다.
'4.1) OCJP > 1Z0-851 / 2012-08-28' 카테고리의 다른 글
| OCJP (1Z0-851 / 2012-08-28 / Exam C) - 19 번 (0) | 2016.11.06 |
|---|---|
| OCJP (1Z0-851 / 2012-08-28 / Exam C) - 18 번 (0) | 2016.11.05 |
| OCJP (1Z0-851 / 2012-08-28 / Exam C) - 17 번 (0) | 2016.10.30 |
| OCJP (1Z0-851 / 2012-08-28 / Exam C) - 16 번 (0) | 2016.10.30 |
| OCJP (1Z0-851 / 2012-08-28 / Exam C) - 15 번 (0) | 2016.10.30 |
| OCJP (1Z0-851 / 2012-08-28 / Exam C) - 13 번 (0) | 2016.10.29 |
| OCJP (1Z0-851 / 2012-08-28 / Exam C) - 12 번 (0) | 2016.10.29 |
| OCJP (1Z0-851 / 2012-08-28 / Exam C) - 11 번 (0) | 2016.10.29 |
| OCJP (1Z0-851 / 2012-08-28 / Exam C) - 10 번 (0) | 2016.10.29 |
| OCJP (1Z0-851 / 2012-08-28 / Exam C) - 9 번 (0) | 2016.10.29 |
RECENT COMMENT