관련 이론 및 문법

(has a / is a 참고)

http://kkikkodev.tistory.com/149


문제 의도

주어진 소스코드에 대한 설명 중, 보기에서 참인 것을 3 개 고르는 문제입니다.


답안

B, C, F


풀이 방법

먼저, 10 라인의 Jumper 인터페이스에는 jump 메소드가 정의되어 있습니다. 20 라인에는 Animal 클래스가 정의되어 있습니다. 30 라인에는, Dog 클래스가 Animal 클래스를 상속하고 있고, 멤버 변수로 Tail 클래스 변수 tail 을 가지고 있습니다. 40 라인에는, Beagle 클래스가 Dog 클래스를 상속하면서 동시에 Jumper 인터페이스를 상속하고 있습니다. 또, jump 메소드를 overriding 하고 있습니다. 50 라인에는, Cat 클래스가 있는데, Jumper 인터페이스를 상속하고 있고, jump 메소드를 overriding 하고 있습니다.


먼저, 보기 A 와 B 를 동시에 살펴보면, Cat 클래스에 대한 내용인 것을 알 수 있습니다. Cat 클래스는 Jumper 인터페이스를 상속하고 있으므로, Cat is a Jumper 의 관계가 됩니다. 따라서, 보기 B 가 답안 후보가 됩니다.


보기 C 와 D 를 동시에 살펴보면, Dog 클래스에 대한 내용인데, Dog 클래스는 Animal 클래스를 상속하고 있고, (Dog is a Animal) Tail 형 변수 tail 을 멤버 변수로 가지고 있습니다. (Dog has a Tail) 따라서, 보기 C 가 답안 후보가 됩니다.


보기 E 를 보면, Cat 클래스에 대한 내용인데, Cat 은 Animal 클래스가 아닌, Jumper 인터페이스를 상속하고 있으므로, 답안 후보에서 제외합니다.


보기 F 와 G 를 동시에 살펴보면, Beagle 클래스에 대한 내용인데, Beagle 클래스는 Dog 클래스를 상속하고, (Beagle is a Dog) Jumper 인터페이스도 상속합니다. (Beagle is a Jumper) 또한, Dog 클래스는 Animal 클래스를 상속하고, (Dog is a Animal) Tail 형 멤버 변수를 가지고 있기 때문에, (Dog has a Tail) 결과적으로, Beagle 또한 Dog 이기 때문에, Animal 클래스를 상속하고, (Beagle is a Animal) Tail 형 멤버변수를 가지게 됩니다. (Beagle has a Tail) 따라서, 보기 F 가 답안 후보가 됩니다.


최종적으로 답안은 B, C, F 가 됩니다.


by kkikkodev 2015. 8. 12. 19:30