【发布时间】:2017-06-07 23:49:59
【问题描述】:
当我浏览 lambda 表达式时,本书涉及到一个只有一个抽象方法的函数式接口。我的问题解决了那个测验问题
/* Which of these interfaces are functional interfaces? */
public interface Adder{
int add(int a, int b);
}
public interface SmartAdder extends Adder{
int add(double a, double b);
}
public interface Nothing{
}
我知道最后一个不是,但我认为第一个和第二个应该是功能接口。但书上说第二个不是。为什么?它不会覆盖add 方法吗?那么即使是第二个,抽象方法不就只有一个吗?
【问题讨论】:
-
"它不会覆盖 add 方法吗?" - 不。一个方法必须与另一个方法具有相同的签名才能覆盖它。
-
如果你用
@FunctionalInterface注释一个接口,编译器会告诉你它是否是一个函数接口。 -
是的。你说的对。这绝对是我没有注意到的。 @user2357112
标签: java java-8 functional-interface