[java] 인터페이스의 default 메소드는 무엇이고 어떻게 사용하나요?

default 메소드를 정의하려면 메소드 선언 앞에 default 키워드를 사용하면 됩니다. 이를 통해 클래스에서 해당 메소드의 구현을 제공하지 않아도 됩니다. 만약 해당 메소드를 재정의하고 싶다면, 해당 메소드를 오버라이드할 수 있습니다.

다음은 default 메소드의 예시입니다.

public interface Vehicle {
    void start();

    default void honk() {
        System.out.println("Beep beep!");
    }
}

public class Car implements Vehicle {
    public void start() {
        System.out.println("The car is starting.");
    }

    // Vehicle 인터페이스의 default 메소드를 오버라이드하지 않음
}

위 예시에서 Vehicle 인터페이스에는 start 메소드와 honk default 메소드가 정의되어 있습니다. Car 클래스에서 Vehicle를 구현할 때 honk 메소드를 별도로 구현하지 않아도 기본 구현을 사용할 수 있습니다.

더 알아보려면 Java 공식 문서의 인터페이스 부분을 참고하세요.