4.1) OCJP/1Z0-851 / 2012-08-28

OCJP (1Z0-851 / 2012-08-28 / Exam A) - 9 번

kkikkodev 2015. 7. 8. 01:41



관련 이론 및 문법

(기본 생성자, 상속시 부모 생성자 호출, super 참고)

http://kkikkodev.tistory.com/87


문제 의도

주어진 소스코드를 컴파일하여 실행하면 어떤 결과가 나오는지 고르는 문제입니다.


답안

D


풀이 방법

Person 클래스에는 String nm 을 매개변수로 가지는 매개변수 생성자가 정의되어 있습니다. Employee 클래스는 Person 클래스를 상속하고, String id 를 매개변수로 가지는 매개변수 생성자를 포함하고 있습니다. 단, 하위 클래스인 Employee 클래스의 생성자에서는 super 키워드를 통한 Person 클래스의 생성자를 명시적으로 호출하는 부분이 보이지 않고 있기 때문에, 컴파일러가 기본적으로 super() 문장을 삽입하여, Pserson 클래스의 기본 생성자를 호출하려고 한다는 것을 알 수 있습니다. 하지만, Pserson 클래스는 이미 매개변수 생성자만 정의되어 있으므로, 따로 기본 생성자는 존재하지 않습니다. 따라서, 18 라인은 잘못된 소스코드라서, 컴파일 에러가 발생하게 됩니다. 답안은, D 가 됩니다.