더북(TheBook)

3.2.2 기본 메서드


인터페이스에 있는 어느 메서드에서든 기본(default) 구현을 작성할 수 있다. 기본 메서드에는 반드시 default 제어자를 붙여야 한다.

public interface IntSequence {

    default boolean hasNext() { return true; }

        // 기본적으로 시퀀스는 무한이다.

    int next();

}


이 인터페이스를 구현하는 클래스는 hasNext 메서드를 오버라이드하거나 기본 구현을 상속하는 방법 중 하나를 선택할 수 있다.

Note ≣

기본 메서드 덕분에 자바 API의 Collection/AbstractCollection이나 WindowListener/WindowAdapter처럼 인터페이스와 해당 인터페이스의 메서드를 대부분 또는 모두 구현한 동반 클래스를 제공하던 고전적인 패턴에 종지부를 찍을 수 있었다. 요즘에는 인터페이스에 이런 메서드를 바로 구현한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.