Недавно я встретил Traits в PHP и попытался их понять. Во время моего исследования я наткнулся на этот вопрос SO: Черты против интерфейсов. В принятом ответе упоминается следующее:
Интерфейс определяет набор методов, которым должен обладать класс реализации реализовать.
Когда используется признак, реализуются реализации методов тоже - что не происходит в интерфейсе.
Пока все хорошо, но это звучит точно так же, как разница между интерфейсом и абстрактным классом для меня. Поэтому для меня возникает следующий вопрос:
- В чем разница между чертой и абстрактным классом в PHP?
Я знаю, что я могу распространяться только из одного абстрактного класса, а с другой стороны использовать любое количество признаков. Но разве это единственное различие? Я все еще не совсем понимаю черты и их использование, поэтому надеюсь, что это не глупый вопрос.