美文网首页
default关键字

default关键字

作者: 迎风布阵x | 来源:发表于2018-12-03 19:57 被阅读0次

default是在java8中引入的关键字,被default标识的方法也可称为Virtual extension methods——虚拟扩展方法。

Virtual extension methods:在接口内部包含了一些默认的方法实现(也就是接口中可以包含方法体,这打破了Java之前版本对接口的语法限制),从而使得接口在进行扩展的时候,不会破坏与接口相关的实现类代码。

例如Iterable接口中的forEach和spliterator方法:

    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);
    }

注意:

  1. 在接口中编写default修饰的方法时,必须有方法体
  2. 接口用static和default修饰的方法都要有方法体,其中被static修饰的方法表示该接口的静态方法(即属于这个接口(类)的方法,不可被继承当然也就不存在重写Override,但是可以被调用)
  3. 本类的对象可以直接调用本类的公有成员方法
  4. default关键字有利有弊,弊端在于default关键字将抽象类和接口之间的一个显著区别抹平了,即接口只能有抽象方法,不提供子类方法的具体实现,而抽象类可以有非抽象的方法

相关文章

  • Java8 default关键字

    在学习集合代码时发现在Iterable接口中使用了default关键字。 default关键字介绍 default...

  • =default关键字

    =default关键字使用的地方 The "default" mechanism can be used for ...

  • Odoo 随笔

    1.default关键字: 当将函数赋值给default关键字时,函数的参数self并不指代当前操作的记录,简单来...

  • Java中容易被遗忘的default关键字

    default关键字 default关键字在JDK8中有两个用处。 1. 在switch语句的时候使用defaul...

  • 第二章 程序结构

    2.1 名称 关键字 break default func interface ...

  • default关键字

    default是在java8中引入的关键字,被default标识的方法也可称为Virtual extension ...

  • Jdk1.8关键字default和Stream流

    default 新增了一个default关键字,在接口中,可以实现方法,然后用default修饰,那么在实现类中不...

  • JDK1.8新特性

    1.default关键字 java里,接口是不能有方法的实现的。1.8通过default关键字可以实现 作用是什么...

  • 2.1 Go基础

    Go内置关键字(25个均为小写) break default func ...

  • ECMAScript 关键字和保留字

    ECMAScript 关键字 break case catch continue default delete d...

网友评论

      本文标题:default关键字

      本文链接:https://www.haomeiwen.com/subject/wcmozftx.html