接口是否继承自ObjectJava中的类?
不,他们没有。并且没有共同的“根”接口被所有接口隐式地继承(就像在类的情况下那样)。(*)
如果没有那么我们如何能够在接口实例上调用对象类的方法
接口隐式声明了每个公共方法的一个方法Object。因此,该equals方法被隐式声明为接口中的成员(除非它已经从超接口继承它)。
这在Java语言规范,第9.2节接口成员中有详细解释。
9.2接口成员
[...]
如果接口没有直接的超接口Object,则接口隐式声明一个公共抽象成员方法m,其中包含签名s,返回类型r和throws子句t,对应于具有签名s的每个公共实例方法m ,返回类型r和throws子句t声明在,除非接口显式声明具有相同签名,相同返回类型和兼容throws子句的方法。
[...]
该帖子已被改写为一篇文章在这里。
(*)请注意,作为子类型的概念不等于继承自:没有超级接口的接口确实是Object(第4.10.2节。类和接口类型之间的子类型)的子类型,即使它们不继承Object。