List l=new ArrayList();
Iterator listiter=l.iterator();
ArrayList实现了List接口,可是在ArrayList中没有List的iterator()方法实现,
为什么可以用ArrayList对象调用iterator()方法呢?

解决方案 »

  1.   

    查查api
    AbstractList这个类实现了iterator()方法
    ArrayList是从它那继承的这个方法
      

  2.   

    没实现的都可以用(比如Map),为什么实现的反而不能用呢,
      

  3.   

    AbstractList这个类实现了iterator()方法 
    ArrayList是从它那继承的这个方法
      

  4.   

    List l=new ArrayList();
    接口引用指向了实现类的对象;这是多态;这时l.iterator()调用的是List中的iterator()方法.
    如果这样ArrayList l=new ArrayList();定义的话,l.iterator()调用的则是ArrayList的父类AbstractList中的
    iterator()方法
      

  5.   

    ArrayList实现了List接口,就要实现List的所有方法,当然包括iterator()方法
      

  6.   

    AbstractList这个类实现了iterator()方法 
    ArrayList是从它那继承的这个方法
      

  7.   


    List里的iteractor()是没有具体的实现的啊,怎么调啊
      

  8.   

    List是一个接口类型,接口里定义的都是没有实现的抽象方法
    这些抽象方法就是要实现这个接口的类来具体实现的
    AbstractList这个类实现了List接口,并实现了iterator()方法
    ArrayList继承了AbstractList这个类,并继承了iterator()方法
      

  9.   

    list是一个接口,里面的方法都没有实现
    List l=new ArrayList(); 
    这句表示  父类的引用指向子类的对象
    这样可以调用子类的方法
      

  10.   

    ArrayList中有List的iterator()方法的实现,不信去看API