接口:
package cn.dali5.code01;
/*函数式接口:有且仅有一个抽象方法的接口(可以有其他的方法,默认,静态,私有)
* 函数式接口,适用于函数式编程场景的接口。Java中函数式编程的提现就是lambda表达式,
* 所以函数式接口就是可以使用lambda表达式的接口。
*
* 语法糖:
* 语法糖是指使用更加方便,但原理不变的代码语法。比如遍历集合使用的for-each语法,其实
* 就是一个语法糖,底层的实现原理还是迭代器。
*
* @FunctionalInterface注解
* 作用:检测接口是否是一个函数式接口。*/
public interface MyInterface {
public abstract void method();
}
package cn.dali5.code01;
import cn.dali.code21.Myinterface;
public class Demo01 {
public static void main(String[] args) {
f1(new MyInterfaceImpl());//使用接口实现类
f1(new MyInterface() {
@Override
public void method() {
System.out.println("使用匿名内部类");
}
});
f1(()-> System.out.println("使用Lambda表达式")
);
}
public static void f1(MyInterface myInter){
myInter.method();
}
}