관련 이론 및 문법

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

http://kkikkodev.tistory.com/86


문제 의도

XMLMessage.main 메소드의 실행결과를 고르는 문제입니다.


답안

C


풀이 방법

주어진 소스코드를 살펴보면 첫 번째 파일에는 Message 클래스가 packageA 패키지 안에 있고, 그 클래스 안에는 String 형을 반환하는 getText 메소드가 정의되어 있습니다. 다른 파일에는 XMLMessage 클래스가 있고, 이 클래스는 packageB 패키지 안에 위치하고 있으며 packageA 패키지의 Message 클래스를 상속하고 있습니다. 이 클래스 안에는 getText 메소드를 overriding 하고 있고, main 메소드가 정의되어 있습니다. 


main 메소드를 실행하면 XMLMessage 객체를 생성하고 getText 메소드를 호출한 결과를 화면에 출력합니다. getText 메소드는 overriding 되어 있으므로 부모 클래스인 Message 안의 getText 메소드는 무시되고 자식 클래스인 XMLMessage 클래스 안의 getText 메소드가 대신 호출됩니다. 즉 "<msg>text</msg>" 가 화면에 출력되게 됩니다.


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


by kkikkodev 2016. 11. 13. 10:41