프로그래밍 언어 활용난도 중상
1번 · 주관식 · 5점
다음 Java 프로그램에서 인터페이스 기본 메서드 내부의 동적 호출과 super를 사용한 부모 구현 호출을 구분하여 출력 결과를 쓰시오.
interface Processor {
int apply(int value);
default int twice(int value) {
return apply(value) + apply(value + 1);
}
}
class BaseProcessor implements Processor {
@Override
public int apply(int value) {
return value + 2;
}
}
class WeightedProcessor extends BaseProcessor {
@Override
public int apply(int value) {
return value * 3;
}
int summary() {
return super.apply(4) + apply(4);
}
}
public class Main {
public static void main(String[] args) {
Processor item = new WeightedProcessor();
int first = item.twice(2);
int second = ((WeightedProcessor) item).summary();
System.out.print(first + ":" + second);
}
}