Java8中接口的默认方法

一.简述

在JDK 8之前,一个接口不能包含任何实现。接口只包含常量和方法签名。
从JDK 8开始,可以定义接口中方法的默认实现。这些方法称为默认方法。

使用关键字"default"声明一个默认方法,它包含一个方法体。
所有实现类接口的默认方法都可用。如果实现类想要使用它,它可以使用它,或者它可以忽略默认实现并创建自己的实现。
即使接口现在可以定义默认方法,如果要创建实例,接口仍然必须由类实现。

二.实现和测试

接口示例:

package insping;

public interface MyInterface {
    int add(int x, int y);

    // 默认方法
    default int multiply(int x, int y) {
        return x * y;
    }
}

上述接口声明一个抽象方法add()和一个默认方法multiply()。

接着我们来创建一个实现这个接口的类。请注意,实现类只需要实现抽象方法。默认方法可以按原样使用,除非实现类要更改行为。

package insping;

public class MyClass implements MyInterface {

    @Override
    public int add(int x, int y) {
        return x+y;
    }

}

上面的MyClass类实现了MyIF接口,并提供了add()方法的实现。

现在,如果我们创建一个MyClass的实例并调用multiply()方法,则将使用默认方法实现.
测试示例:

package insping;


public class Test {

    public static void main(String[] args) {
        MyInterface intRef = new MyClass();

        System.out.println("和 = " + intRef.add(5, 10));

        System.out.println("乘 = " + intRef.multiply(5, 10));
    }
}

结果:

和 = 15
乘 = 50
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值