Java Core middle

В чём разница: Абстрактный класс vs интерфейс?

Ответ

Абстрактный класс: состояние (поля), конструкторы, один наследник. Интерфейс: контракт, множественная реализация, Java 8 — default/static методы. Когда что: общее поведение + состояние → абстрактный класс; только контракт с множественной реализацией → интерфейс.

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

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

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