PHP абстрактные классы и интерфейсы - отличия - в чём разница

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

  1. нельзя создать объект (так как некоторые методы могут быть абстрактными => вызывать их бессмысленно)
  2. некоторые методы могут быть абстрактными (без реализации),а некоторые обычными
  3. Наследоваться от нескольких абстрактных классов нельзя (т.к. могут быть различные реализации одноимённых методов - тогда не ясно что наследовать)

Интерфейс

  1. Поля и методы интерфейса не могут иметь реализацию в самом интерфейсе
  2. Один класс может реализовывать много интерфейсов