课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,越来越多的人都在学习java编程开发语言,而今天我们就一起来了解一下,java函数式接口的概念与特点。
一、函数式接口是什么?
所谓的函数式接口,实际上就是接口里面只能有一个抽象方法的接口。
二、函数式接口的特点
接口有且仅有一个抽象方法,如上图的抽象方法compare
允许定义静态非抽象方法
允许定义默认defalut非抽象方法(default方法也是java8才有的,见下文)
允许java.lang.Object中的public方法,如上图的方法equals。
FunctionInterface注解不是必须的,如果一个接口符合"函数式接口"定义,那么加不加该注解都没有影响。加上该注解能够更好地让编译器进行检查。如果编写的不是函数式接口,但是加上了@FunctionInterface,那么编译器会报错
甚至可以说:函数式接口是专门为lambda表达式准备的,lambda表达式是只实现接口中的抽象方法的匿名实现类。
三、default关键字
顺便讲一下default关键字,在java8之前
接口是不能有方法的实现,所有方法全都是抽象方法
实现接口就必须实现接口里面的所有方法
这就导致一个问题:当一个接口有很多的实现类的时候,修改这个接口就变成了一个非常麻烦的事,需要修改这个接口的所有实现类。
这个问题困扰了java工程师许久,不过在java8中这个问题得到了解决,没错就是default方法
default方法可以有自己的默认实现,即有方法体。
接口实现类可以不去实现default方法,并且可以使用default方法。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请在707945861群中学习了解。