接口Interface不是没有方法的实现吗?那么调用它的成员方法怎么还能实现相应的功能呢?有点想不通?如下:
    Iterator it = collection.iterator();  
    while(it.hasNext()) { 
      Object obj = it.next(); 
    } 
上面的collection是个接口,怎么可以调用它的方法iterator()来实现功能?
还有,Iterator接口的一个成员方法是next():Returns the next element in the iteration.
如果按jdk的这个解释,这个next()方法应该是实现了特定的功能了,也就是有方法的实现,那么它应该是个抽象类,而不应该是接口了啊!想不明白。。新手望帮助。

解决方案 »

  1.   

    似乎这是JAVA在容器接口中的内部机制,好象在collection中的所有方法并没有实现太实质性的操作,只不过是在容器中获得相关的信息而已。也许也是就是类似与描述了collection接口的特性罢了。我也不太懂,应该是接口的更深层的意义吧~观望中~
      

  2.   

    这个一种回调机制,先前你已经声明了实现了collection类的实例
    他调用的是你实际类型的方法
      

  3.   

    collection是容器类,怎么会是接口呢?本身就带迭代方法,概念还没弄明白吧
      

  4.   

    如果你写一个类继承collection那么那些方法你就得重新写,你可以试试
      

  5.   

    对collection 做指向的时候 就已经指向了一个具体实现类了
      

  6.   

    大概明白了,大家的意思是说接口实质上已经指向了实现它的某个具体的类了。
    那么,我想问一下,对于Iterator这个接口,it用到了it.next(),那么到底是哪个类实现了这个接口?才使it能够使用并实现next()方法?
    还是不太明白,请指教!
      

  7.   

    他关联到那个类就调用那个类的
    例如
    List<String> list=new ArrayList<String>();
    Iterator it=list.iterator(); 
    那么他就调用ArrayList的