관련 이론 및 문법

(메소드 오버로딩 (method overloading) 참고)

http://kkikkodev.tistory.com/92


문제 의도

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


답안

C


풀이 방법

소스코드를 보면, A 라는 클래스가 1 번 라인에 있고, 그 안에 doit 메소드가 총 3 개 정의되어 있습니다. 먼저, 2 번 라인에 doit 메소드가 정의되어 있고, (매개변수가 없는 형태) 4 번 라인에 또 doit 메소드가 정의되어 있습니다. (매개변수가 없는 형태)


메소드 오버로딩의 조건은, 같은 이름의 메소드라도, 매개변수가 다르면, 여러 개 정의하는 것이 허용된다는 것인데, 첫 번째, 두 번째 doit 메소드의 매개변수가 없는 형태로 동일하기 때문에, 컴파일 에러가 납니다. (정확히는 4 번 라인 때문에 에러가 납니다.) 단, 7 번 라인의 doit 메소드는 매개변수가 int 형 변수 한 개를 취하기 때문에, 메소드 오버로딩이 성립되어 컴파일 에러가 발생하지 않게 됩니다.


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


by kkikkodev 2015. 9. 2. 00:51