Java Core trainee

В чём разница абстрактного класса и интерфейса?

Ответ

Абстрактный класс может иметь состояние (поля), конструктор и реализованные методы, но унаследоваться можно ТОЛЬКО от одного. Интерфейс — контракт, описывающий «что умеет», поддерживает множественную реализацию, а с Java 8 — default-методы; его методы по умолчанию public abstract.

Разбор: Абстрактный класс может хранить состояние, иметь конструктор и готовые реализации, но наследоваться можно лишь от одного; интерфейс описывает контракт, поддерживает множественную реализацию, а с Java 8 — default-методы. Дистракторы меняют роли местами (поля у интерфейса), утверждают невозможное множественное наследование классов и искажают модификаторы доступа: методы интерфейса по умолчанию public abstract, а не private.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться