Java8中的默认方法和Lambda的使用

本文详细介绍了Java8中的默认方法和Lambda表达式。默认方法允许接口拥有实现,解决了多继承的冲突问题。Lambda表达式简化了函数接口的实现,包括使用方式、方法引用和类库中的函数接口应用。
摘要由CSDN通过智能技术生成

Java8中的默认方法和Lambda的使用

接口默认方法

Java8中,接口允许拥有带有方法实现的默认方法,在方法前使用关键字default来区别于普通的抽象方法。
一个接口可以有多个默认方法,也可以只有默认方法而不含有传统的抽象方法,同时,默认方法不强制子类重写,并且可以像类的成员方法一样被继承。
例如:

interface Test<T> {
    default T abcd(T a) {
        return a;
    }
    default T abc(T a) {
        return a;
    }
}

可以让一个类继承多个带有抽象方法的接口来实现多重继承。
当一个类继承了两个带有相同函数签名的默认方法的接口时,编译时会报错,这时,需要在同时继承了这两个接口的类中重写引发冲突的默认方法。
例如:

//接口Test1中含有默认方法"T abc(T a)"
interface Test1<T> {
    default T abc(T a) {
        return a;
    }
}

//接口Test2中也含有默认方法"T abc(T a)
interface Test2<T> {
    default T abc(T a) {
        return a;
    }
}

//类Test同时实现接口test1和test2
class Test<T> implements Test1<T>, Test2<T> {
    @Override
    public T abc(T a) {
        ......
        return ...
    }
}

如果你想在重写的方法中直接使用原先接口中的某个默认方法实现,可以使用super关键字。
例如:

//类中的"T abc(T a)"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值