一. 接口新增了static和default方法
- 接口的static方法不能被继承和实现(但是static属性可以被继承和实现), static方法的用法:类名.static方法
- 接口的default方法可以呗继承和实现,并且可以被子接口重写. 用法: 必须实例化以后才可以使用
二.函数式接口
函数式接口[FunctionalInterface]定义:
- 函数式接口中有且只有一个抽象方法
- 接口由注解@FunctionalInterface声明
- 如果接口满足函数式接口的特征,但是没有使用@FunctionalInterface注解,编译器还是会按函数式接口来定义该接口
注意
在FunctionalInterface的doc中:
大意就是如果一个接口中定义了一个public修饰的抽象方法,并且该方法重写了Object类的public方法(比如toString,equals方法),那么这个方法并不算在该函数式接口的抽象方法范围内,也就是说除了该方法,可以另外定义一个抽象方法,才能满足函数式接口的条件,举例如下:
基本语法
<函数式接口> <变量名> = (参数...) -> {方法体}
我理解的: 就是该函数式接口的抽象方法的实现
持续更新…