Почему 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
?
Ответы
Ответ 1
Да. Его можно было бы опустить. Но при этом сразу видно, что это List
. В противном случае потребуется дополнительный клик по коду/документации. Я думаю, что причина - ясность.
И чтобы добавить то, что прокомментировал Joeri Hendrickx, - это для того, чтобы показать, что ArrayList
реализует List
. AbstractList
во всей картинке просто для удобства и уменьшения дублирования кода между реализациями List
.
Ответ 2
Скорее всего, это связано с увеличением трассируемости структуры наследования. Таким образом, вам не нужно спускаться со всем деревом наследования, когда просматриваете Javadoc или тому подобное.
Ответ 3
Мои 2 цента - это сохранить тот факт, что ArrayList является. AbstractList просто завершает определенные реализации, которые требует список.