根据Java语言规范(Version8.0),“接口不继承对象,而是隐式声明许多与对象相同的方法。”如果您从接口中的对象类中提供了一个抽象方法,那么它仍然是一个函数接口。
@FunctionalInterface
interface EqualsInterface {
boolean equals(Object obj);
}编译器给出了一个错误:“EqualsInterface不是一个函数接口:在接口EqualsInterface中找不到抽象方法”。为什么?提前感谢
发布于 2018-08-22 12:48:51
据Java称,
一种信息丰富的注释类型,用于指示接口类型声明是由Java语言规范定义的功能接口。从概念上讲,函数接口只有一个抽象方法。因为默认方法有一个实现,所以它们不是抽象的。如果接口声明了一个抽象方法,该方法覆盖了
java.lang.Object**,的公共方法之一,该方法也不计入接口的抽象方法计数,因为接口的任何实现都将有来自**java.lang.Object或其他地方的的实现。
https://stackoverflow.com/questions/51966837
复制相似问题