在閱讀Collection源碼時(shí)瞄桨,發(fā)現(xiàn)Collection接口繼承了接口Iterable,Iterable內(nèi)部有兩特別的個(gè)方法:
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);
}
發(fā)現(xiàn)接口Iterable內(nèi)部由具體的函數(shù)實(shí)現(xiàn)雄可,被default關(guān)鍵字修飾,查閱資料得知缠犀,default是Java1.8的新特性数苫,接口內(nèi)不可以實(shí)現(xiàn)具體的函數(shù),前提是使用default修飾辨液,因此在實(shí)現(xiàn)使用了default修飾方法的接口的時(shí)候虐急,可以重寫接口default,可以默認(rèn)使用父類方法室梅,具有多態(tài)性戏仓。