Для ссылочной переменной, тип которой является интерфейсом, объект, который вы ей назначаете, должен реализовывать интерфейс. Как это относится к интерфейсу List Iterator, которому назначается объект класса, который его не реализует (я не смог найти отношение в иерархии)
List<String> list = new ArrayList<String>();
ListIterator<Type> it = list.listIterator(list.size());---1
Я читал, что Iterator является надклассом ListIterator, но не смог найти связь между ListIterator и ArrayList или List.
Я знаю, что с интерфейсом List
у него есть метод listIterator(), который помогает назначать итератор коллекциям. Но какой класс на самом деле реализует ListIterator, чтобы он был назначен ему в иерархии.
Я пытаюсь понять утверждение 1 и то, как ему присваивается это значение.
ArrayList
и нажать F3, чтобы увидеть исходный код ArrayList. (Затем ищите методlistIterator
) - person user253751   schedule 28.08.2015public
. И они неактуальны. Метод, который возвращает фактическую реализацию, говорит вам, на какое поведение вы можете положиться. - person Holger   schedule 28.08.2015ArrayList
не присваивается переменнойListIterator
. Ему будет присвоено возвращаемое значение вызова методаlistIterator(…)
. Это совсем другой объект. - person Holger   schedule 28.08.2015ListIterator
, это, скорее всего, внутренний класс. - person fabian   schedule 28.08.2015