public Iterator elements( ) {
return new LinkedListIterator(this);
}
这里的Iterator 是接口,但是突然很疑惑,接口怎么能声明方法呢。后面查询发现:这个接口(Iterator )的实现类有很多,如果返回的类型是LinkedListIterater,的话就只能返回这一个类型,这样的话太局限了. 返回的类型(Iterator)是父类的话,可以接收任意 的子类,这就是多态的优点.
private LinkedList list;
private nodecurrent;
这里的 LinkedList 和Node 都是接口,但是能声明变量。原因如下:
接口是不能实例化的,不过可以声明一个接口的引用变量,让它指向一个类的实例,当然那个类要实现了那个接口的。
看代码发现 有类实现了LinkedList 和node这两个接口。所以这里指向了 , 实现了LinkedList 和node这两个接口的类,也就是相当于用这两个类实例化。