java接口在1.8.0中新增了default关键字

本文探讨了Java 8中接口默认方法的引入,展示了如何使用default关键字在接口中实现方法,这为接口编程提供了更大的灵活性,允许在不修改所有实现类的情况下扩展接口。

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

今天在看druid.io的源码的时候,发现在接口中竟然可以是用default关键字,并且可以在接口中实现方法体.查询资料发现default是JDK1.8中新增的,这种发破了原来java对接口语法的闲置.

public interface Jobby {
    boolean run();

    /**
     * @return A map containing statistics for a Jobby, optionally null if the Jobby is unable to provide stats.
     */
    @Nullable
    default Map<String, Object> getStats() {
        throw new UOE("This Jobby does not implement getJobStats(), Jobby class: [%s]", getClass());
    }

    /**
     * @return A string representing the error that caused a Jobby to fail. Can be null if the Jobby did not fail,
     * or is unable to provide an error message.
     */
    @Nullable
    default String getErrorMessage() {
        throw new UOE("This Jobby does not implement getErrorMessage(), Jobby class: [%s]", getClass());
    }
}

我在在做接口编程的时候,如果在接口中新增一个方法,那么就必须在接口各个实现类中实现这个接口,否则代码就会报错,但是在引入这种新的接口语法后,我们新增的接口中使用default修饰,那么只需要在需要的实现类中重新实现该方法即可,并不需要所有的接口中都要重新实现该接口方法.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值