【发布时间】:2016-09-13 18:20:48
【问题描述】:
在第 9.2 段的 JLS 中它说
如果一个接口没有直接的超接口,则该接口隐式声明一个公共抽象成员方法 m,签名为 s,返回类型为 r,并且 throws 子句 t 对应于每个签名为 s,返回类型为 r 的公共实例方法 m,并且在 Object 中声明的 throws 子句,除非接口显式声明了具有相同签名、相同返回类型和兼容 throws 子句的方法。
如果假设遗漏了声明,则会导致编译时错误。但是为什么编译器需要这些声明,当任何类都继承了 Object 的方法时,即关于这些方法,某种行为已经得到保证?在任何接口定义中要求这些声明背后的原因是什么?
【问题讨论】: