Т.е., например, обычно при создании коллекции мы создаём объект типа имплементируемого интерфейса.
List list = new ArrayList();
Но, если бы в ArrayList были поля и методы помимо тех, что есть в интерфейсе List, то они были бы недоступны объекту list. А такой подход используется не только для коллекций, но и повсеместно, вроде.
Что-то где-то кто-то писал об этом, не помню...
Какая в этом выгода? Почему не лучше
ArrayList list = new ArrayList()?
Денис Першин
41 уровень
Подскажите, зачем при создании объектов расширять их до родительских классов или интерфейсов?
Решен
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
hidden #2322530
17 апреля 2021, 17:55полезный
а если ты тебе надо будет посреди кода сделать так:
а ещё есть такой принципы D в солид. а ещё есть EE и там всё от интерфейсов строится. потому что в любой момент можно изменить реализацию, а код не должен рухнуть. DI всё таки как никак. +1
Денис Першин
18 апреля 2021, 08:31
Понял, спасибо.
0