[java] 인터페이스의 구현체에서 메소드를 선택적으로 구현하는 방법은?

자바 8부터는 인터페이스의 디폴트 메서드(default method)를 활용하여 선택적으로 구현할 수 있게 되었습니다. 디폴트 메서드는 인터페이스에 메서드 본문을 제공하여 해당 인터페이스를 구현하는 클래스에서 메서드를 오버라이드할 필요가 없도록 합니다.

다음은 인터페이스 내에 디폴트 메서드를 정의하는 예시입니다.

public interface MyInterface {
    // 일반 메서드
    void normalMethod();

    // 디폴트 메서드
    default void optionalMethod() {
        // 메서드 구현
    }
}

위 예시에서 optionalMethod는 디폴트 메서드로 정의되었습니다. 해당 인터페이스를 구현하는 클래스에서 optionalMethod를 따로 구현하지 않아도 기본 구현이 제공됩니다. 그러나 필요에 따라 해당 메서드를 오버라이드하여 클래스별로 커스터마이징할 수도 있습니다.

이를 통해 인터페이스를 활용한 다중 상속의 장점을 유지하면서도, 기능을 선택적으로 구현하는 편의성을 제공할 수 있습니다.

참고 문헌: https://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html