Java8新特性系列-默认方法

Java8引入了默认方法和静态方法到接口中,允许向现有接口添加功能而不破坏实现类。默认方法使用`default`关键字,可以直接在接口中提供实现,而静态方法则不能被实现类覆盖,只能通过接口名调用。本文通过示例展示了如何使用这两个新特性,并提供了调用方法的实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文连接: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、付费专栏及课程。

余额充值