接口隐式声明 Object 类的公共方法?

18

根据 JLS(第 9.2 节):

如果接口没有直接的超接口,则该接口隐式声明一个公共抽象成员方法 m,其签名为 s,返回类型为 r,并且 throws 子句与每个签名为 s、返回类型为 r 和 throws 子句 t 的公共实例方法 m 相对应在 Object 中声明,除非接口显式声明了具有相同签名、相同返回类型和兼容 throws 子句的抽象方法。

为什么任何顶级接口都implicitly声明了Object的公共方法这个设计的目的是什么?

本杰明·M

这个设计的目的是什么?

因为您希望能够调用例如toStringequals所有内容。

interface Foo {
  
}

Foo foo = ...;

foo.equals(otherFoo);

我是否真的equals在接口中声明了方法并不重要

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章