都说Object是一个类,说Object是一个类并不够详细,应该说Object是一个抽象类,明明是个抽象类怎么可能被Interface继承???
我从网上找了个帖子,并进行了验证:
//接口到底是不是Object的子类
interface MyInterface{
public void show();
}
public class InterfaceExtendsObject {
public static void main(String[] args) {
new MyInterface(){
public void show(){
}
}.toString(); //如果不是,为什么接口可以用object类的方法?
}
}
发现这段代码并没有问题,也就是说Interface的确继承了一个有.toString()方法的“东东”
这让我越来越怀疑Object到底是个抽象类 还是一个Interface!!!!
于是我默默的敲出Object,想进入其定义查看究竟。却在中途找到了答案。
除了发现了一个Object的抽象类,我还发现在
import org.omg.CORBA.Object;
这个org包里还有个Object的Interface!!!!!
所以说:所有的Interface继承了Object类这句话是不对的,应该说是所有的Interface继承了Object接口。
如果不细查这里面的原因估计是个java的老学究也会跳进这个坑里,愿以自己的实战经历,给后来的新手们解惑。非常欢迎到访者指出文章中的错误的知识点和观点。