2.**We can get the result returned by the call() method**. For this purpose, we have used the `get()` method. This method waits until the `Callable` object has finished the execution of the `call()` method and has returned its result.
[Access modifier](//howtodoinjava.com/object-oriented/java-access-modifiers/) ‘public’ is optional in all above interface method declarations. I have added them to improve readability only.
In simple words, a lambda expression is an instance of a functional interface. But a lambda expression itself does not contain the information about which functional interface it is implementing; that information is deduced from the context in which it is used.
* 即使`@FunctionalInterface`注释将被省略 ,函数式接口也是 ***有效。 它仅用于通知编译器在接口内部强制使用单个[抽象方法](//howtodoinjava.com/object-oriented/exploring-interfaces-and-abstract-classes-in-java/ "Exploring interfaces and abstract classes in java")。***
* Conceptually, a functional interface has exactly one abstract method. Since [**default methods**](//howtodoinjava.com/java8/default-methods-in-java-8/"Default methods in java 8") have an implementation, they are not abstract. Since default methods are not abstract you’re ***free to add default methods to your functional interface as many as you like***.
以下是有效的功能接口:
以下是有效的函数式接口:
```java
@FunctionalInterface
...
...
@@ -102,6 +102,6 @@ multiple non-overriding abstract methods found in interface MyFirstFunctionalInt