- 只有一个抽象方法(Object中方法重名的抽象方法除外)
- 可以存在非抽象方法:默认方法、静态方法 ```java package cn.unuuc.java.service;
@FunctionalInterface public interface OrderService { void get(); }
该接口就是一个函数式接口。
3. **为了显著的区分普通接口和函数式接口的区别,可以使用 `@FunctionalInterface` 注解来标注**
```java
package cn.unuuc.java.service;
@FunctionalInterface
public interface OrderService {
void get();
}
- 使用该注解后,如果存在第二个抽象方法时,会直接报错提示。
- 但是重写定义了Object类中的方法为抽象方法时却不会报错。 ```java package cn.unuuc.java.service;
@FunctionalInterface public interface OrderService { void get();
String toString();
}
```
- 函数接口总结一句话
有且只有一个抽象方法的接口(与Object类中的方法重名除外)为函数式接口,函数式接口依然可以使用默认方法和静态方法。