検索

ホームページ  >  に質問  >  本文

java - 如图代码,Collection 类中的iterator()是抽象方法,为什么可以调用?

1

2

3

4

5

6

7

8

<code>        Collection    c1 =new ArrayList();

        c1.add("hello");

        c1.add(1);

        Collection    c2 =new ArrayList();

        c2.add(new Student() );

        c2.addAll(c1);

        c2.add("我");

        Iterator it = c2.iterator();</code>

Collection 与List 还有ArrayList都没有重写iterator()方法,为什么可以最后一步这样调用呢?

天蓬老师天蓬老师2807日前754

全員に返信(3)返信します

  • 高洛峰

    高洛峰2017-04-18 10:49:56

    ArrayList は、AbstractList クラスから継承し、List インターフェイスの Iterator()< をオーバーライドします。 /code>Method: ArrayList继承自AbstractList类, AbstractList类重写了List接口的iterator()方法:

    1

    2

    3

    <code>public Iterator<E> iterator() {

        return new Itr();

    }</code>

    其中ItrAbstractList的内部类,实现了Iterator リーリー

    その中で、ItrAbstractList の内部クラスであり、Iterator インターフェイスを実装します。 🎜

    返事
    0
  • 迷茫

    迷茫2017-04-18 10:49:56

    ArrayListはありませんか? ?

    返事
    0
  • 天蓬老师

    天蓬老师2017-04-18 10:49:56

    このイテレータは ArrayList の内部クラスである必要があります。ArrayList で見つからない場合は、コレクション クラスごとに異なるイテレータを使用する必要があります。ソース コードを確認してください。

    返事
    0
  • キャンセル返事