@FunctionalInterface
public interface Handler {
public abstract void handler1();java
public default void defaultMethod(){
System.out.println("this is default method");
}
// 静态方法
public static void staticMethod(){
System.out.println("staticMethod");
}
}ide
接口有且仅有一个抽象方法函数
容许定义静态方法this
容许定义默认方法.net
容许java.lang.Object中的public方法接口
该注解不是必须的,若是一个接口符合"函数式接口"定义,那么加不加该注解都没有影响。加上该注解可以更好地让编译器进行检查。若是编写的不是函数式接口,可是加上了@FunctionInterface,那么编译器会报错get
public class Demo {
public static void main(String[] args) {
//JobHandler jobHandler=new JobHandlerImpl();
//jobHandler.excute();
Handler handler=new Handler() {
@Override
public void handler1() {
System.out.println("3123123123123123123");
}
};
handler.defaultMethod();
Handler.staticMethod();
}
}
编译器