class PlayersList{
 ArrayList playArray;
 List subListobj;   //List不是接口吗?怎么这里是个类?
 PlayersList(){
 playerArray=new ArrayList();
 subListobj=new ArrayList();  //这里是不是重写?  为什么定义List subListobj=new ArrayList();具体作用是什么??
 }
}

解决方案 »

  1.   

    class PlayersList{ 
    ArrayList playArray; 
    List subListobj;  //List不是接口吗?怎么这里是个类? 
    PlayersList(){ 
    playerArray=new ArrayList(); 
    subListobj=new ArrayList();  //这里是不是重写?  为什么定义List subListobj=new ArrayList();具体作用是什么?? 


    List subListobj; 声明的时候类型名 也可以是接口不一定是类subListobj=new ArrayList();  这里是不是重写(重写一般是指方法),是接口引用指向实际接口实现类的对象                                 作用就是通过List 接口来操作ArrayList
                                 
      

  2.   

     接口可以声明,但不能实例化。所以右侧必须是一个能实例化的类,比如 ArrayListSet o = new HashSet();这个是一样的道理
    我多么希望你能多结一些帖子....
      

  3.   

    List subListobj; 声明时可以是接口名,但是你不能直接new,而是new实现该接口的类
      

  4.   

    解释的很好,但有一个问题,如下:
    实际上接口也可以实例化的,书上都说接口不能实例化,但其实可以,请查阅javaapi。
      

  5.   

    List subListobj 声明接口类型 new ArrayList()指向接口实现类对象的引用
      

  6.   

    接口只能声明接口类型
    所以List subListobj;是没问题的
    new ArrayList()就不能为接口类,只能是实例类如果是用接口声明的,则实例必须是接口的子实例类
      

  7.   


    你可能理解错了。接口不能用new运算符实例化一个接口。 
    但能声明接口变量。 
    接口变量必须引用实现了接口的类对象。 
      

  8.   

    这是多态的表现.五楼说的
    "实际上接口也可以实例化的,书上都说接口不能实例化,但其实可以,请查阅javaapi。"我也想知道接口怎么实例化
      

  9.   

    List subListobj;这个实际上表示的意思是声明一个可以指向 List 类型的变量 subListobj,这时还没有进行初始化。subListobj = new ArrayList();表示将具体 List 类型的对象将 subListobj 赋值。这种的作用一般在于降低 API 之间的耦合度,尽最大的可能采用接口类型。比如,我们在 IO 包里的 API 都是 InputStream 作为参数,并不是写死某一个具体的类,这样,
    只要实现 InputStream 的类都可以作为参数来使用这些方法了,采用面向接口进行编程。
      

  10.   


    你是不是说反射里Interface对象,那个不是接口。
    楼上,如果抽象类能实例话,接口也能,因为我一直把接口当成高度抽象的抽象类。
      

  11.   

    不好意思,这个地方确实是我理解错了,我上午查了很多资料,确实接口不能直接实例化。
    我昨天的意思是这样
    interface myInterface{
    };
    interface MyInterface{
    }
     class Myclass{
    MyInterface myInterface=new MyInterface(){
    public String getId(){
    return "";
    }
    };
    }
      

  12.   


    接口是不能实例化的,如:Map map = new Map();   //像这种情况是错误的,因为接口是不能实例化的。所以它只能Map map = new HashMap();//去实例化
    严重 质疑 5楼的 接口可以实例化。希望举个例子给大家看看。
      

  13.   


    oh, I'm so sorry!!!