Java8新特性系列-默认方法

原文连接:Java8新特性系列-默认方法 – 微爱博客

Java8 Interface Default and Static Methods

在 Java 8 之前,接口只能有公共抽象方法。 如果不强制所有实现类创建新方法的实现,就不可能向现有接口添加新功能,也不可能创建具有实现的接口方法。

从 Java 8 开始,接口可以具有静态和默认方法,尽管在接口中声明了这些方法,但它们具有已定义的行为。

静态方法

假如一个接口有如下的方法

static String producer() {
    return "N&F Vehicles";
}

静态 producer() 方法只能通过接口和在接口内部使用。 它不能被实现类覆盖。 要在接口之外调用它,应使用静态方法调用的标准方法:

String producer = Vehicle.producer();

默认方法

默认方法是使用新的 default 关键字声明的。 这些可以通过实现类的实例访问,并且可以被覆盖。

让我们为 Vehicle 接口添加一个默认方法,该方法也会调用该接口的静态方法:

default String getOverview() {
    return "ATV made by " + producer();
}

假设这个接口是由类 VehicleImpl 实现的。 为了执行默认方法,应创建此类的实例:

Vehicle vehicle = new VehicleImpl();
String overview = vehicle.getOverview();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值