Потому что для всех целей B
не использует PropertyTrait
. Используется A
для создания абстрактного класса.
B
не видит, какие черты A
использует. Если бы вы выполнили class_uses
на B
, вы бы получили пустой массив. Документы и пример .
Поскольку B
не использует никаких признаков, класс может переопределять любые унаследованные свойства.
Тот факт, что A
является абстрактным классом, не имеет к этому никакого отношения. Такое же поведение будет происходить с любым классом, который расширяет класс, составленный с использованием признаков.