❓ Чем отличается абстрактный класс от интерфейса?
Абстрактный класс может содержать как реализованные, так и абстрактные методы, состояние (поля), а также конструкторы. Интерфейс до Java 8 содержал только абстрактные методы, но теперь может иметь default, static методы и даже private методы (с Java 9), но не может содержать состояние (кроме static final констант).
🔹 Ключевые отличия:
▪️ extends — только один абстрактный класс, но implements — множество интерфейсов.
▪️ Абстрактный класс позволяет инкапсулировать общую реализацию и состояние.
▪️ Интерфейс чаще используют для задания контракта, который может быть реализован классом с любой иерархией.
🐸 Библиотека собеса по Java
Post #982
2.07K
- 👍 10
- 🔥 5
- 👏 2
- ❤ 1