Подтвердить что ты не робот

Почему ArrayList имеет "реализует список"?

В Framework Collection мы имеем интерфейс List и класс AbstractList:

AbstractList implements List

И ArrayList extends AbstractList и

implements List

Мой вопрос: почему ArrayList имеет предложение implements List?

Если ArrayList extends AbstractList и AbstractList implements List, нельзя сказать, что ArrayList implement List?

4b9b3361

Ответ 1

Да. Его можно было бы опустить. Но при этом сразу видно, что это List. В противном случае потребуется дополнительный клик по коду/документации. Я думаю, что причина - ясность.

И чтобы добавить то, что прокомментировал Joeri Hendrickx, - это для того, чтобы показать, что ArrayList реализует List. AbstractList во всей картинке просто для удобства и уменьшения дублирования кода между реализациями List.

Ответ 2

Скорее всего, это связано с увеличением трассируемости структуры наследования. Таким образом, вам не нужно спускаться со всем деревом наследования, когда просматриваете Javadoc или тому подобное.

Ответ 3

Мои 2 цента - это сохранить тот факт, что ArrayList является. AbstractList просто завершает определенные реализации, которые требует список.