Приоритет методов при работе с трейтами в ООП в PHP

Если в классе и в трейте есть одноименный метод, то метод класса переопределит метод трейта:

php<?php
  trait TestTrait
  {
    // Метод с именем method:
    public function method()
    {
      return 'trait';
    }
  }
  
  class TestClass
  {
    use TestTrait;
    
    // Такой же метод с именем method:
    public function method()
    {
      return 'test';
    }
  }
  
  $test = new TestClass;
  echo $test->method(); // выведет 'test' - сработал метод самого класса
?>

Если же сам класс не имеет такого метода, но имеется конфликт имен методов трейта и методов родительского класса, то методы трейта имеют приоритет:

php<?php
  trait TestTrait
  {
    // Метод с именем method:
    public function method()
    {
      return 'trait';
    }
  }
  
  // Родительский класс:
  class ParentClass
  {
    // Метод с именем method:
    public function method()
    {
      return 'parent';
    }
  }
  
  // Класс наследует метод method от родительского:
  class TestClass extends ParentClass
  {
    use TestTrait;
  }
  
  $test = new TestClass;
  echo $test->method(); // выведет 'trait', тк трейт имеет приоритет
?>