다음 <보기>에서 자바 코드의 실행 결과로 출력되는 값은?&… | [해양경찰 컴퓨터일반] 26년 2회차 기출문제 상세 페이지
1[해양경찰 컴퓨터일반] 26년 2회차
다음 <보기>에서 자바 코드의 실행 결과로 출력되는 값은?< 보 기 >class Calculator {
public int compute(int n) {
return n * 2;
}
}
class AddCalculator extends Calculator {
@Override
public int compute(int n) {
return super.compute(n) + 10;
}
}
class SubCalculator extends Calculator {
@Override
public int compute(int n) {
return super.compute(n) - 5;
}
}
public class Main {
public static void main(String[] args) {
Calculator[] calcs = {
new AddCalculator(),
new SubCalculator(),
new Calculator()
};
int total = 0;
for (Calculator c : calcs) {
total += c.compute(10);
}
System.out.println(total);
}
}
1
45
2
55
3
60
4
65
해설
배열의 세 객체가 각자 재정의된 메서드를 호출해 합계 65가 출력된다.
동적 바인딩으로 실제 객체 타입의 compute가 호출되고, super.compute(10)은 부모의 을 돌려준다.
- AddCalculator: , 누적 total은 30
- SubCalculator: , 누적 total은 45
- Calculator: , 누적 total은 65
오류나 개정된 내용이 보이면 알려주세요