函数式接口

接口:

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();
    }
}

你可能感兴趣的:(JAVA)