Java Core trainee
В чём разница абстрактного класса и интерфейса?
Ответ
Абстрактный класс может иметь состояние (поля), конструктор и реализованные методы, но унаследоваться можно ТОЛЬКО от одного. Интерфейс — контракт, описывающий «что умеет», поддерживает множественную реализацию, а с Java 8 — default-методы; его методы по умолчанию public abstract.
Разбор: Абстрактный класс может хранить состояние, иметь конструктор и готовые реализации, но наследоваться можно лишь от одного; интерфейс описывает контракт, поддерживает множественную реализацию, а с Java 8 — default-методы. Дистракторы меняют роли местами (поля у интерфейса), утверждают невозможное множественное наследование классов и искажают модификаторы доступа: методы интерфейса по умолчанию public abstract, а не private.
Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.