我在一个测试类中有如下
在LinkedList中并无Iterator()方法实现,是调用父类AbstractSequentialList的方法
父类AbstractSequentialList中此方法实现
public Iterator<E> iterator() {
return listIterator();
}
public abstract ListIterator<E> listIterator(int index); //并未实现父类AbstractList的抽象方法
于是再次点击跟踪方法进入AbstractList
public ListIterator<E> listIterator() {
return listIterator(0);
}
public ListIterator<E> listIterator(final int index) {
rangeCheckForAdd(index);
return new ListItr(index);
}
new的是ListItr类
在此类中并无next,hasNext方法!
但是在LinkedList的ListItr中有
这里就不懂了 按照ctrl+鼠标左键 跟踪的方法,应该是用的AbstractList中的ListItr但是在测试类中为什么会可以调用next和HasNext方法,在在AbstractList中的ListItr并未实现方法啊?
//在AbstractList中的ListItr
private class ListItr extends Itr implements ListIterator<E>