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

В чем разница между абстрактными методами в абстрактном классе и интерфейсе

Абстрактные методы в абстрактном классе:

  • Могут иметь модификаторы доступа (public, protected)
  • Могут быть объявлены только в абстрактных классах
  • Класс-наследник должен реализовать все абстрактные методы
  • Могут содержать реализацию других методов (неабстрактных)

Абстрактные методы в интерфейсе (начиная с Java 8):

  • По умолчанию public abstract (нельзя изменить)
  • Интерфейс может содержать методы с реализацией (default, static)
  • Класс, реализующий интерфейс, должен реализовать все абстрактные методы (кроме default)

Пример:

java
abstract class Animal {
    abstract void makeSound(); // абстрактный метод
    void eat() { System.out.println("Eating..."); } // обычный метод
}

interface SoundMaker {
    void makeSound(); // абстрактный метод
    default void stopSound() { System.out.println("Sound stopped"); } // default метод
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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