Object类是所有类的父类,也就是根类。
那么一个接口能继承另一个接口,那接口的根接口是什么?还是接口就没有根接口这个概念
这是你上课时将泛型时的代码GenericTest<? super List> ge2 = null;
ge2 = new GenericTest<Object>();难道Object是List的父类,也就是说Object是接口的父类?

解决方案 »

  1.   

     = = ..我是这样想的。。肯定没有根接口。。Object也不是接口的父类,因为接口本身只是用来制定规范的。。比如说 你和你爸爸。。你爸爸就是Object类,而你自然会继承一些你爸爸的东西,而接口 只用用来制定 人生下来会苦,或说话,会吃饭。。所以我想在这里接口代表的并不是接口。。而是代表所有实现此接口的类。。而Obejct又是所有类的父类。。所以就OK了。。 语言表达能力不好。。不知你能不能明白,
      

  2.   


    GenericTest<? super List> ge2 = null;
    ge2 = new GenericTest<Object>();GenericTest指定了泛型下限是List,也就是说参数类型是实现了List接口的对象类型(由于List必须通过子类实例化,所以至少是ArrayList,LinkedList之类)或者是其父类。所以在new的时候传一个父类是符合这个泛型要求的。
      

  3.   

    你有一个地方说错了。参数类型不可以是List的实现类。 因为下线是List而ArrayList LinkedList是List的下面。下面的代码是错误的。我试验了。import java.util.*;
    public class Test {
    public static void main(String[] args) {
    HashSet<? super List> set = null;
    set = new HashSet<LinkedList>();

    }}
      

  4.   


    GenericTest<? super List> ge2 = null;
    ge2 = new GenericTest<Object>();泛型里面规定了接受的是List的父接口或者实现了父接口的类吧,怎么下面能传个Object对象呢?我就是想不通,讨论下。我哪错了,请指正
      

  5.   


    泛型里面规定了接受的是List的父接口或者实现了父接口的类吧这句话错了。我进行了下面的实验。
    下面的代码是错误的。
    import java.util.*;
    public class Test {
    public static void main(String[] args) {
    HashSet<? super B> set = null;
    set = new HashSet<C>();

    }}
    interface A{

    }
    class C implements A {

    }
    interface B extends A{

    }
      

  6.   

    这么说吧。经过刚才的实验。B接口继承于A接口C类实现了A接口C类并不满足于这个要求? super B
    所以,我猜测。对于Object这个类。他应该是进行了特殊的处理。
      

  7.   

    嗯,对的,是错了。至少应该是List的父类。不应该是子类
      

  8.   

    楼主你不必过于纠结了。Object类肯定是做特殊处理了。做特殊处理也是有原因的。原因很多,暂不解释了。有的原因也是面向操作系统级别的。
    你只要知道,Object类做特殊处理了就行了。然后知道 上下线的问题。
    就OK了。
      

  9.   


    jvm规范中
    super_class; //0 或指向 constant_poll 中的有效索引值 , 对于 interface 必须为非 0 interface的super_class必须为非0,而它又确实没有super_class那么怎么办呢?就把它指向Objectso接口可以用object来代替就是这个原因。java中接口是没有根接口这一说法的,也没有继承Object。