❓ Чем отличается абстрактный класс от интерфейса?
Абстрактный класс может содержать как абстрактные, так и конкретные методы, а интерфейс до Java 8 мог содержать только абстрактные методы (с Java 8 появились default и static методы).
🔹 Наследование: класс может наследоваться только от одного абстрактного класса, но реализовать несколько интерфейсов.
🔹 Модификаторы: методы интерфейса по умолчанию public, а в абстрактном классе можно использовать разные модификаторы доступа.
🔹 Поля: интерфейс содержит только public static final (константы), а абстрактный класс может иметь обычные поля.
🔹 Когда использовать
Абстрактный класс — если есть частичная реализация или состояние.
Интерфейс — если нужна контрактная функциональность без реализации.
🐸 Библиотека собеса по Java
Post #823
2.43K
- ❤ 9
- 👍 4
- 🔥 2
- 🌚 1