169 похожих чатов

Хм я тут подумал,ведь в колекшинс есть некая иерархия.И ArrayList

имплементится от интерфейса List.Но зачем при создании объекта ArrayList указывать ему тип данных List???Ведь тогда этому списку будут доступны только методы с интерфейса List(а методы с абстрактных классов от которых наследуется ArrayList и сами методы определённые в ArrayList не будут доступны).Ну тип зачем делать урезанную версию списков,если можно просто присвоить тип данных ArrayList?

5 ответов

6 просмотров

В контексте списков с этого мало плюшек, а в контексте иерархии других классов переменные не завязываются на конкретный инстанс по типу, поэтому в дальнейшем нет проблем сменить его на другой. Читать: полиморфизм , абстракции , lsp

je-W Автор вопроса

это делается для того, что когда не нужны конкретные методы класса ArrayList, нам и не обязательно тип переменной такой указывать, ведь это связывает нам руки. представьте метод, который может вернуть ArrayList, а при количестве объектов больше Х возвращает LinkedList. Что тогда?) Вам правильно указали здесь прочитать про полиморфизм, абстракции и SOLID, а конкретно принцип L. Другой пример: у нас в приложении может быть несколько сервисов для подсчета налогов, и в зависимости от локали будет подгружаться сервис той страны, в которой приложуха работает. Тогда в других местах мы просто объявляем НалоговыйКалькулятор и просто пользуемся функционалом, а уж какая именно имплементация подгрузиться - нам не важно.

je-W Автор вопроса
je W
Всм не завязываются по типу???

А типо нет проблем сменить ArrayList на LinkedList,если переменная с типом List будет.Вот что имелось ввиду под не завязываются.Ну я понял спс

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
в сях есть множество как в питоне? для удаление дубликатов
Linus
25
читать файл максимально быстро? странный вопрос))
zamtmn
53
How to create an OS in C? what to study?
Linus
18
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
а как бы вылезти из ИО, что то типа IO -> Ether или в какую сторону смотреть ? что то туплю
Fedor
9
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
5
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Карта сайта