Java Core junior

Что такое абстрактный класс? Чем отличается от интерфейса?

Ответ

Абстрактный класс может содержать состояние и реализованные методы, наследуется только один. Интерфейс — контракт, можно реализовать несколько. С Java 8 в интерфейсах появились default-методы.

Разбор: Главные отличия: абстрактный класс может иметь состояние (поля экземпляра) и обычные реализованные методы, но наследуется только один; интерфейс задаёт контракт, реализовать можно несколько, а с Java 8 он получил default-методы. Ловушки: множественное наследование допускают именно интерфейсы (не классы), у интерфейса нет полей-состояния экземпляра (только константы), и default-методы не стёрли разницу — состояние и одиночное наследование остаются.

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

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