Встречается на собеседованиях • сегодня
Зачем нужен интерфейс, если есть абстрактный класс
Интерфейс и абстрактный класс решают разные задачи. Интерфейс описывает контракт (что можно делать), а абстрактный класс может содержать реализацию (как делать).
Ключевые отличия:
- Класс может реализовать несколько интерфейсов, но унаследовать только один класс (включая абстрактный).
- Интерфейс (с Java 8+) может содержать
default-методы, но не состояние (поля), тогда как абстрактный класс может иметь поля и конструкторы.
Пример:
java
interface Flyable {
void fly(); // контракт без реализации
}
abstract class Bird {
protected String name;
public Bird(String name) { this.name = name; }
abstract void makeSound(); // абстрактный метод
}Когда что использовать:
- Интерфейс: для определения поведения, которое могут реализовать разные классы.
- Абстрактный класс: для частичной реализации и общего состояния в иерархии наследования.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы