정보처리기사 실기JavaJava - 추상클래스와 인터페이스난이도 5SHORT_ANSWER

정보처리기사 실기 Java - 추상클래스와 인터페이스 기출문제 #310

문제

다음 Java 코드의 실행 결과를 쓰시오.

Java
interface A { int value = 10; default String process() { return "A-" + value; } } interface B { int value = 20; default String process() { return "B-" + value; } } abstract class Base { int value = 30; String process() { return "Base-" + value; } } class Child extends Base implements A, B { int value = 40; public String process() { return A.super.process() + "-" + super.value; } } public class Main { public static void main(String[] args) { A obj = new Child(); System.out.println(obj.value + " " + obj.process()); } }

정답

10 A-10-30

10 A-10-3010A-10-30

해설

  1. obj.value: A 인터페이스 타입으로 선언되어 인터페이스 상수 10을 정적 바인딩으로 참조
  2. obj.process(): Child 클래스의 오버라이딩된 메서드가 동적 바인딩됨
  3. A.super.process(): 인터페이스 A의 default 메서드 호출로 "A-10" 반환 (A.value = 10)
  4. super.value: Base 클래스의 필드 30 참조
  5. 최종 결과: "A-10" + "-" + "30" = "A-10-30"

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.