函数式接口详解

函数式接口(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);
    }
}

你可能感兴趣的:(java1.8新特性,接口,函数闭包,函数式编程)