package unit5;
public class Java49 {
public static void main(String[] args) {
// 函数式接口SAM
// 定义:只有一个抽象方法的接口(但可以有多个非抽象方法)
// 注解:@FunctionalInterface
// 匿名类
// ???????R r = new R() {
// ???????????@Override
// ???????????public void m() {
// ???????????????System.out.println(1);
// ???????????}
// ???????};
// ???????r.m();
// 函数式接口:无参
// ()就是唯一的抽象方法的参数列表
// {}就是唯一的抽象方法的方法实现
R r = ()->{
System.out.println(1);
};
r.m();
// 函数式接口:有参
S s = (int x, int y)->{
return x + y;
};
System.out.println(s.m(2,3));
}
}
// 函数式接口的定义
@FunctionalInterface
interface R {
void m();
static void m2(){
System.out.println(2);
}
default void m3(){
System.out.println(3);
}
}
@FunctionalInterface
interface S {
int m(int a, int b);
}