문제
다음 Java 프로그램의 실행 결과는?
interface Drawable { default void draw() { System.out.print("Interface "); }
① Interface Rendered ② Rectangle Rendered ③ 컴파일 오류 (인터페이스 인스턴스화 불가) ④ Interface Rectangle
정답
2번
해설
인터페이스의 default 메서드는 구현 클래스에서 오버라이드할 수 있다. Rectangle 클래스가 draw() 메서드를 오버라이드했으므로 인터페이스의 default 구현 대신 Rectangle의 구현이 호출된다. render()는 Rectangle에서 구현한 메서드가 호출되어 "Rectangle Rendered"가 출력된다.