/*
函数式接口:有且仅有一个抽象函数的接口,当然了,可以有 私有方法 静态方法等
注解:@ 可用于验证
@override用于检查抽象函数是否被重写
@functionalInterface :用于检查是否是函数式接口
*/
@FunctionalInterface//不能用于方法之中 ,用于类之外
public interface MyIFunctionalInterface {
public abstract void method1();
//public abstract void method2();
}
/*
函数式接口的使用:作为参数或者返回值使用 实际上传入的是实现类
01.传入实现类
02.传入匿名内部类
03.lambda表达式
*/
public class UseOfFI {
public static void main(String[] args) {
myinterfer(new MyIFunctionalInterface() {
@Override
public void method1() {
System.out.println("这是匿名内部类");
}
});
myinterfer(()->{
System.out.println("这是lambda表达式");
});
}
public static void myinterfer( MyIFunctionalInterface i)
{
i.method1();
}
}