我在一本书看到这样的代码:
          ArrayList al=new ArrayList();  
     Iterator itr=al.iterator();
Iterator是一个接口,不是说了接口是不能定义对象的吗?怎么这里又定义了itr这 个Iterator对象??

解决方案 »

  1.   

    al.iterator()返回的是Iterator的一个实现类的实例。
      

  2.   

    al.iterator();返回的是一个实现了Iterator接口的对象,并不是java.util.Iterator的Instance
      

  3.   

    不是定义itr这个Iterator对象, itr是一个由实现了Iterator接口的类生成的实例,是可以用Iterator接口声明的
      

  4.   

    al.iterator()返回的是Iterator的一个实现类的实例。
    在java中这叫多态性
      

  5.   

    可是在java文栏中没有查到ArrayList实现了Iterator接口?又何谈al.iterator()返回的是Iterator的一个实现类的实例呢??