接口类是否继承自Object?
结论:是的。
从两个方面来验证。
首先定义一个接口类,如下:
package com.zcw.learning;
/**
* @Author : zcw
* @Date : Create in 2020/9/13
* @Description :
* @Version : 1.0
*/
public interface I {
}
1. 从编写代码时ide的提示来看
如上图所示,定义的I接口没有任何方法,但在ide的提示中却包含了clone、equals等Object类的方法,故而可以说明I接口是继承于Object类的
2. 从编译后的字节码来看
使用这个方法验证应该是最权威的方法了
使用javap -verbose I.class反编译生成的.class文件可以看到如下内容
根据class文件格式可知,#1表示的是本类的符号引用索引,指向#5;#2表示的是超类的符号引用,指向#6为java/lang/Object。至此可以很清晰的得知Object类同样是接口的超类。