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

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

문제

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

Java
abstract class Vehicle { String brand = "Generic"; abstract void start(); void getBrand() { System.out.print(brand); } } class Car extends Vehicle { String brand = "Toyota"; void start() { System.out.print("Engine"); } void getBrand() { System.out.print(brand); } } public class Main { public static void main(String[] args) { Vehicle v = new Car(); v.getBrand(); System.out.print("-"); v.start(); } }

정답

Toyota-Engine

Toyota-Engine

해설

  1. Vehicle v = new Car()로 Car 객체를 Vehicle 타입으로 참조
  2. v.getBrand() 호출 → 메서드는 동적 바인딩되어 Car의 getBrand() 실행 → Car의 brand 필드인 "Toyota" 출력
  3. "-" 출력
  4. v.start() 호출 → 추상 메서드가 Car에서 구현된 start() 실행 → "Engine" 출력 결과: "Toyota" + "-" + "Engine" = "Toyota-Engine"

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

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

[정보처리기사 실기] Java - 추상클래스 동적 디스패치 Java 기출 #2625 | sqldpass