디폴트 메서드의 등장으로 기존 인터페이스에 메서드를 추가할 수 있게 되었음

→ 디폴트 메서드를 추가했을 때, 모든 기존 구현체들과 매끄럽게 연동된다는 보장이 없음

디폴트 메서드가 추가된 예시

default boolean removeIf(Predicate<? super E> filter) {
    Objects.requireNonNull(filter);
    boolean result = false;
    
    for (Iterator<E> it = iterator(); it.hasNext(); ) {
        if (filter.test(it.next())) {
            it.remove();
            result = true;
        }
    }
    return result;
}

주의점