Сперва предисловие, чтобы поняли суть вопроса:
Поскольку учить программирование я начал в универе с С++, для меня абстрактный класс и интерфейс отличаются только реализацией: если класс только из абстрактных методов, которые обязательно нужно будет переопределить у наследников (нет обычных методов с реализацией) то это интерфейс. В Java у меня сломался мозг, потому что при помощи default- методов можно написать реализацию в классе, который мы изначально специально помечаем как интерфейс (даже специальным отдельным ключевым словом). Хотя по факту я же могу просто написать обычный абстрактный класс с реализацией в тех функциях, где надо. Так в чём разница между обычными методами с реализацией в абстрактных классах и default в интерфейсах? Неужели не хватало одного варианта?
Asked
Active
Viewed 26 times
0
Никита
- 89
List(добавлены методыreplaceAll.sort,spliterator),Collection(stream/parallelStream,removeIf,spliterator) и т.д., не ломая обратную совместимость. – Nowhere Man Feb 26 '24 at 23:46