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

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

Интерфейс:

  • Может содержать только абстрактные методы (до Java 8) и default/static методы
  • Поддерживает множественное наследование (класс может реализовывать несколько интерфейсов)
  • Все поля по умолчанию public static final
  • Не может содержать конструктор

Абстрактный класс:

  • Может содержать абстрактные и обычные методы
  • Может иметь поля любого модификатора доступа
  • Может содержать конструктор
  • Поддерживает только одиночное наследование

Пример:

java
interface Flyable {
    void fly(); // абстрактный метод
}

abstract class Animal {
    abstract void makeSound(); // абстрактный метод
    void eat() { System.out.println("Eating..."); } // обычный метод
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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