天上飞的云传奇 2021-08-08 19:21 采纳率: 83.3%
浏览 35
已结题

关于Java的父类接口问题?

我在一个测试类中有如下

img
在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类

img
在此类中并无next,hasNext方法!
但是在LinkedList的ListItr中有
img
这里就不懂了 按照ctrl+鼠标左键 跟踪的方法,应该是用的AbstractList中的ListItr但是在测试类中为什么会可以调用next和HasNext方法,在在AbstractList中的ListItr并未实现方法啊?

//在AbstractList中的ListItr
private class ListItr extends Itr implements ListIterator<E> 
  • 写回答

2条回答 默认 最新

  • 八云黧 2021-08-08 19:29
    关注
    1. 用的确实是AbstractList中的ListItr
    2. ListItr继承了另一个内部类Itr,Itr是有next和hasNext的,
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月16日
  • 已采纳回答 8月8日
  • 创建了问题 8月8日