函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。
函数式接口可以被隐式转换为 lambda 表达式。
java1.8之前接口中只能写抽象的方法,但在java1.8后接口中可以写静态的方法,可以写default修饰的方法,对于函数式接口只要求只能有一个抽象方法必须被实现,而接口中可以声明default方法和静态方法,所以,不代表接口中只能有一个方法。
@FunctionalInterface
用来声明函数式接口,如果不合法就会报错
下面的代码时一个合法的函数式接口
package com.cp.test;
/*函数式接口*/
@FunctionalInterface
public interface Add {
int addNum(int a, int b);
/*java1.8开始可以写default修饰的方法和静态方法*/
default void add1(int a, int b){
System.out.println(a+b);
}
static void add2(int a,int b){
System.out.println(a+b);
}
}