정보처리기사 실기JavaJava - 추상클래스 동적 디스패치난이도 5SHORT_ANSWER

정보처리기사 실기 Java - 추상클래스 동적 디스패치 기출문제 #466

문제

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

Java
abstract class Device { String brand = "Generic"; abstract String getModel(); String getBrand() { return brand; } } class Phone extends Device { String brand = "Samsung"; String model = "Galaxy"; String getModel() { return model; } String getBrand() { return brand; } } public class Main { public static void main(String[] args) { Device d = new Phone(); System.out.println(d.brand + " " + d.getBrand() + " " + d.getModel()); } }

정답

Generic Samsung Galaxy

GenericSamsungGalaxy

해설

필드 brand는 정적 바인딩으로 선언 타입인 Device의 "Generic"이 사용됩니다. 메서드 getBrand()와 getModel()은 동적 바인딩으로 실제 객체인 Phone의 메서드가 호출되어 "Samsung"과 "Galaxy"를 반환합니다.

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

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