cari

Rumah  >  Soal Jawab  >  teks badan

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

        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();

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

天蓬老师天蓬老师2802 hari yang lalu738

membalas semua(3)saya akan balas

  • 高洛峰

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

    ArrayList mewarisi daripada kelas AbstractList dan kelas AbstractList mengatasi kaedah List antara muka iterator():

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

    di mana Itr ialah kelas dalaman AbstractList dan melaksanakan antara muka Iterator.

    balas
    0
  • 迷茫

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

    Adakah terdapat ArrayList? ?

    balas
    0
  • 天蓬老师

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

    Iterator ini sepatutnya menjadi kelas dalaman ArrayList Jika ia tidak ditemui dalam ArrayList, ia sepatutnya berada dalam kelas asasnya untuk kelas koleksi yang berbeza.

    balas
    0
  • Batalbalas