根据 JLS(第 9.2 节):
如果接口没有直接的超接口,则该接口隐式声明一个公共抽象成员方法 m,其签名为 s,返回类型为 r,并且 throws 子句与每个签名为 s、返回类型为 r 和 throws 子句 t 的公共实例方法 m 相对应在 Object 中声明,除非接口显式声明了具有相同签名、相同返回类型和兼容 throws 子句的抽象方法。
为什么任何顶级接口都implicitly
声明了Object类的公共方法?这个设计的目的是什么?
这个设计的目的是什么?
因为您希望能够调用例如toString
和equals
所有内容。
interface Foo {
}
Foo foo = ...;
foo.equals(otherFoo);
我是否真的equals
在接口中声明了方法并不重要。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句