请各位高手解答这个问题.
Interface是否继承Object,如果不是那下面这个方法为什么能编译通过呢?
public static void xxx(Collection c)
{
System.out.println(c.toString() + c.hashCode());
}
如果是,那下面这个方法为什么输出null呢?
Class cls = Class.forName("java.util.Collection");
System.out.println(cls.getSuperclass());

解决方案 »

  1.   

    接口当然不是继承自Object的
    我先给你解释为什么第一段能编译通过
    是因为你给一个Collection的引用,它肯定是指向某个类的
    因为接口由类去实现的,也就是说只要这个引用存在,那么它就是一定是指向一个类的引用,既然是指向一类的引用,那以这个类肯定就是Object的子类,那么调用以上两个方法也就无可厚非了.
    你要记住,把一个引用给一个接口时,这个引用一定是实现了这个接口的类.
    后面就不用我解释了,因为它是一个顶级接口,所以它的父类为null,
      

  2.   

    “Object是所有类的基类”,这句话很值得琢磨
    interface不是类,interface往往用于规范类的功能,或者声明静态的变量。现在想想,二者的关系很有趣