1. 只有一个抽象方法(Object中方法重名的抽象方法除外)
    2. 可以存在非抽象方法:默认方法、静态方法 ```java package cn.unuuc.java.service;

    @FunctionalInterface public interface OrderService { void get(); }

    1. 该接口就是一个函数式接口。
    2. 3. **为了显著的区分普通接口和函数式接口的区别,可以使用 `@FunctionalInterface` 注解来标注**
    3. ```java
    4. package cn.unuuc.java.service;
    5. @FunctionalInterface
    6. public interface OrderService {
    7. void get();
    8. }
    1. 使用该注解后,如果存在第二个抽象方法时,会直接报错提示。

    image.png
    image.png

    1. 但是重写定义了Object类中的方法为抽象方法时却不会报错。 ```java package cn.unuuc.java.service;

    @FunctionalInterface public interface OrderService { void get();

    1. String toString();

    }

    ``` image.png

    1. 函数接口总结一句话

    有且只有一个抽象方法的接口(与Object类中的方法重名除外)为函数式接口,函数式接口依然可以使用默认方法和静态方法。