我知道,功能接口中的多个抽象方法将不起作用,因为在声明lambda表达式时,编译器无法知道要使用哪个抽象方法。我还知道,如果其他抽象方法签名与默认Object类的签名相匹配,则可以在功能接口中声明它们:
功能接口是只有一个抽象的接口 方法(除了对象的方法之外),因此代表 单功能合同。
来源:Java Language Specification)
但是,我仍然不知道为什么接口应该在功能接口(或任何其他接口)中声明诸如boolean equals(Object o)
之类的抽象方法,以及为什么在功能接口的规范中对此异常进行了声明。声明始终存在的抽象方法有什么意义?