모두CBT

다음 <보기>에서 자바 코드의 실행 결과로 출력되는 값은?&… | [해양경찰 컴퓨터일반] 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)은 부모의 10×2=2010 \times 2 = 20을 돌려준다.

  • AddCalculator: 20+10=3020 + 10 = 30, 누적 total은 30
  • SubCalculator: 20−5=1520 - 5 = 15, 누적 total은 45
  • Calculator: 10×2=2010 \times 2 = 20, 누적 total은 65

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[해양경찰 컴퓨터일반] 26년 2회차 20문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요해양경찰 컴퓨터일반 기출문제 암기장 전체 보기