문제
다음은 Java 코드에 대한 알맞는 출력값을 작성하시오.
정답
2
해설
obj 의 실제 객체는 Child 이므로 동적 바인딩으로 Child.compute 가 호출되고, 재귀 호출 compute(num-1)+compute(num-3) 도 모두 Child 의 것이 실행된다. Child.compute 는 num <= 1 이면 num 을 그대로 반환하므로 compute(-1) 은 -1 이다. 이를 기준으로 계산하면 compute(2)=compute(1)+compute(-1)=0, compute(3)=compute(2)+compute(0)=0, compute(4)=compute(3)+compute(1)=1, compute(5)=compute(4)+compute(2)=1, compute(6)=compute(5)+compute(3)=1, compute(7)=compute(6)+compute(4)=2 이다.