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

Устарел ли абстрактный класс

Абстрактные классы не устарели, но их использование стало более узкоспециализированным после появления интерфейсов с default-методами (Java 8+).

Когда использовать абстрактный класс:

  • Нужна реализация части методов
  • Требуется состояние (поля класса)
  • Необходим конструктор
  • Логика тесно связана с наследованием

Когда предпочесть интерфейс:

  • Нужна множественная "наследоваемость"
  • Требуется только контракт без реализации
  • Работа с лямбда-выражениями

Пример:

java
abstract class Animal {
    protected String name;
    
    public Animal(String name) {
        this.name = name;
    }
    
    abstract void makeSound();
    
    void sleep() {
        System.out.println(name + " is sleeping");
    }
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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