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

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

문제

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

Java
interface Drawable { String color = "White"; default String getColor() { return "Default"; } void draw(); } abstract class Figure implements Drawable { String color = "Black"; abstract void calculate(); String getColor() { return this.color; } } class Circle extends Figure { String color = "Red"; void draw() { System.out.print("Circle "); } void calculate() { System.out.print("Calc "); } String getColor() { return super.getColor() + color; } } public class Main { public static void main(String[] args) { Drawable d = new Circle(); Figure f = new Circle(); System.out.print(d.color + " "); System.out.print(d.getColor() + " "); System.out.print(f.color + " "); System.out.print(f.getColor()); } }

정답

White BlackRed Black BlackRed

White BlackRed Black BlackRedWhiteBlackRedBlack

해설

  1. d.color: 인터페이스 필드는 정적 바인딩되어 Drawable의 "White" 출력
  2. d.getColor(): 메서드는 동적 바인딩되어 Circle의 getColor() 호출, super.getColor()는 Figure의 "Black"을 반환하고 Circle의 color "Red"와 결합하여 "BlackRed" 출력
  3. f.color: 참조 타입 Figure로 정적 바인딩되어 Figure의 "Black" 출력
  4. f.getColor(): 동적 바인딩으로 Circle의 getColor() 호출하여 "BlackRed" 출력

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

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