покажите мне код, где нужен трейт.
- если там один трейт, то его можно заменить абстрактным классом
- если два и больше трейтов, то либо нарушается SRP, либо происходит бессмысленное обощение, которое приводит к усложнению и запутыванию кода
Выше же говорили. Дефолнтная реализация интерфейса. Заменить на абстрактный класс не получится, т.к. на класс можно навесить несколько интерйесов, но отнаследоваться только от одного абстрактного класса.