gpt4 book ai didi

java - 从同一个类重写同一个方法两次

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:21:43 25 4
gpt4 key购买 nike

我正在理解 iterator() 方法如何与 ArrayList 类一起工作。在 ArrayList 类中,我发现 iterator() 方法被同一个类 AbstractList 重写了两次。

public Iterator<E> iterator() {
return new Itr(); // Itr is an inner private class of
// ArrayList which
// implements Iterator interface .
}

public Iterator<E> iterator() {
return listIterator();
}

但这怎么可能呢?这里应该有 already defined 的错误。我很困惑。

最佳答案

您看到的第一个 iterator() 方法属于 ArrayList 类,但第二个不是。

属于SubList类,是ArrayList的内部类:

private class SubList extends AbstractList<E> implements RandomAccess {
...
public Iterator<E> iterator() {
return listIterator();
}
...
}

因此它不会被同一个类覆盖两次。每个类重写它一次。

关于java - 从同一个类重写同一个方法两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44351441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com