在阅读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,可以默认使用父类方法,具有多态性。
网友评论