Встречается на собеседованиях • сегодня

Можно ли заменить абстрактный класс без полей, но с абстрактными методами, на интерфейс

Да, можно. В Java 8+ интерфейсы поддерживают абстрактные методы (по умолчанию), поэтому если абстрактный класс не содержит полей и не имеет состояния, его можно заменить интерфейсом.

Пример замены:

java
// Было:
abstract class Animal {
    abstract void makeSound();
}

// Стало:
interface Animal {
    void makeSound();
}

Преимущества интерфейса:

  • Поддержка множественного наследования
  • Более гибкая архитектура
  • Возможность добавлять default-методы

Ограничение: если в будущем понадобится добавить общее состояние (поля), придется вернуться к абстрактному классу.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы