ListIterator/Iterator - tworzymy obiekty, czy nie?

0

Hej,

Banalne pytanie dla Was:
Nie można tworzyć obiektów interfejsów, więc skoro ListIterator i Iterator to interfejsy, to co to jest?

ArrayList imiona = new ArrayList();
    imiona.add("Chaitanya");
    imiona.add("Steve");
    imiona.add("Jack");
 
    Iterator it = imiona.iterator();

Czym jest dokładnie to, zmienną typu interfejs(kombinuję na siłę)?
Przecież to nie obiekt.

  Iterator it = imiona.iterator();
0

Nie jestem jakimś ekspertem, ale wydaje mi się że to znaczy że do takiej zmiennej możesz przypisać dowolny obiekt który implementuje ten interfejs.

0

Arraylist implementuje interfejs Iterable

1

Możesz konstruować obiekty implementujące jakiś interface np:

List<String> listOfString = new ArrayList<>();

Gdzie List jest interfejsem a ArrayList klasę go implementującą

1

Typ referencji jest albo tożsamy z typem obiektu, albo jest jego nadtypem. Jeśli mamy referencję typu Iterable to obiekt do którego prowadzi ta referencja może być np typu ArrayList.

Tworzenie obiektów odbywa się za pomocą słówka new (lub ewentualnie za pomocą refleksji). Przypisywanie referencji nie tworzy żadnego obiektu.

0

Dzięki wszystkim za odpowiedzi, teraz już łapię.

1 użytkowników online, w tym zalogowanych: 0, gości: 1