Sobes.tech
Junior
90
questionbank

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

Ответ от нейросети

sobes.tech AI

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

  • Может содержать абстрактные (без реализации) и конкретные (с реализацией) методы.
  • Может содержать поля (переменные экземпляра).
  • Может иметь конструкторы.
  • Допускает одиночное наследование (один класс может наследовать от одного абстрактного класса).
  • Используется для определения базовой структуры и общего поведения для связанных классов.

Интерфейс:

  • Может содержать только абстрактные методы (некоторые языки, например Java с версии 8, допускают default и static методы с реализацией).
  • Не может содержать поля экземпляра (только константы).
  • Не может иметь конструкторы.
  • Допускает множественную реализацию (один класс может реализовать несколько интерфейсов).
  • Используется для определения контракта, который обязуются реализовать классы.