관련 이론 및 문법

(익명 클래스 (anonymous class) 참고)

http://kkikkodev.tistory.com/147


문제 의도

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


답안

A


풀이 방법

1 번 라인에 TestA 라는 인터페이스가 정의되어 있고, toString 메소드가 추상 메소드의 형태로 있는 것을 볼 수 있습니다.


3 번 라인에는 Test 클래스의 정의부가 있고, 4 번 라인에는 main 메소드가 있는데, 5 번 라인에서, System.out.println 메소드를 호출하면서 매개변수로 익명 클래스인 TestA 인터페이스의 인스턴스를 넘기고 있습니다. (추상 메소드인 toString 의 정의부 포함)


System.out.println 메소드의 매개변수로 인스턴스가 넘어오면, 기본적으로 그 인스턴스의 toString 메소드가 호출되고, 그 toString 메소드의 반환값이 화면에 출력되게 되어 있습니다. 따라서, TestA 인터페이스 인스턴스의 toString 메소드의 반환값인 "test" 가 화면에 출력됩니다. 결과적으로, 답안은 A 가 됩니다.


by kkikkodev 2015. 7. 8. 22:54