Java default關鍵字

在閱讀Collection源碼時,發現Collection接口繼承了接口Iterable,Iterable內部有兩特別的個方法:

default void forEach(Consumer<? super T> action) {
    Objects.requireNonNull(action);
    for (T t : this) {
        action.accept(t);
    }
}

default Spliterator<T> spliterator() {
    return Spliterators.spliteratorUnknownSize(iterator(), 0);
}  

發現接口Iterable內部由具體的函數實現,被default關鍵字修飾,查閱資料得知,default是Java1.8的新特性,接口內不可以實現具體的函數,前提是使用default修飾,因此在實現使用了default修飾方法的接口的時候,可以重寫接口default,可以默認使用父類方法,具有多態性。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。