接口的默认方法

来源:互联网 发布:snmpv3 trap java 编辑:程序博客网 时间:2024/06/05 16:34

接口的默认方法

Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法,示例如下:
复制代码 代码如下:

interface Formula {    double calculate(int a);    default double sqrt(int a) {        return Math.sqrt(a);    }}

Formula接口在拥有calculate方法之外同时还定义了sqrt方法,实现了Formula接口的子类只需要实现一个calculate方法,默认方法sqrt将在子类上可以直接使用。
复制代码 代码如下:

Formula formula = new Formula() {    @Override    public double calculate(int a) {        return sqrt(a * 100);    }};formula.calculate(100);     // 100.0formula.sqrt(16);           // 4.0

和其他方法一样,默认方法也可以被继承。
除了上面看到的默认方法,Java8中还允许我们在接口中定义静态方法。这使得我们可以从接口中直接调用它相关的辅助方法,而不是从其它的辅助类中调用(如Collections)。

原创粉丝点击