日期:2014-05-20  浏览次数:20769 次

关于Iterator遍历器,不懂!
接口是不能被实例化的,接口中的方法都是没有方法体的抽象方法。  
那么请问:  
List   list=new   Arraylist();  
list.add( "aaa ");  
list.add( "bbb ");  
Iterator   it=list.iterator();  
while(it.hasNext())  
{  
System.out.println(it.next());  
}  
Iterator是一个接口,为什么它可以被实例化?就是Iterator   it=list.iterator();这句,list.iterator()方法返回了一个Iterator的对象。接口中的方法都是没有方法体的抽象方法。为什么可以直接用it.hasNext(),it.next()),这些没有方法体的方法。没有方法体的方法应该什么都没实现啊?

------解决方案--------------------
list.iterator();
返回的实例对象,实现了Iterator接口
Iterator it=list.iterator();
it是个引用,it.hasNext(),实际调用的是list.iterator()返回的实例对象的hasNext()方法