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

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

문제

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

Java
interface A { String name = "A"; default String getName() { return name + "Method"; } } interface B { String name = "B"; default String getName() { return name + "Method"; } } abstract class C { String name = "C"; abstract String getName(); } class Test extends C implements A, B { String name = "Test"; public String getName() { return A.super.getName() + this.name; } } public class Main { public static void main(String[] args) { A a = new Test(); C c = new Test(); System.out.println(a.name + " " + c.getName()); } }

정답

A AMethodTest

A AMethodTestAAMethodTest

해설

a.name은 인터페이스 A의 상수 "A"를 정적 바인딩으로 접근. c.getName()은 Test 클래스의 오버라이딩된 메서드를 동적 바인딩으로 호출. A.super.getName()은 "AMethod"를 반환하고 this.name은 "Test"(Test 객체의 필드)를 참조하여 "AMethodTest" 반환.

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

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