문제
다음 Java 프로그램의 실행 결과는?
Javaabstract class Vehicle { String brand = "Generic"; abstract void start(); void display() { System.out.print(brand + " "); } } class Car extends Vehicle { String brand = "Toyota"; void start() { System.out.print("Engine "); } } public class Main { public static void main(String[] args) { Vehicle v = new Car(); v.display(); v.start(); } }
① Generic Engine ② Toyota Engine ③ Generic ④ Toyota
정답
1번
해설
필드는 참조 타입 기준으로 해석되어 display()에서는 Vehicle의 brand인 'Generic'이 출력된다. start()는 오버라이딩된 Car의 메서드가 호출되어 'Engine'이 출력된다.