Jaka jest „domyślna” implementacja metody zdefiniowanej w interfejsie?

W interfejsie kolekcji znalazłem nazwę metodyremoveIf() który zawiera jego implementację.

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

Chcę wiedzieć, czy istnieje sposób zdefiniowania treści metody w interfejsie?
Co to jestdefault słowo kluczowe i jak to działa?

questionAnswers(3)

yourAnswerToTheQuestion