Приоритет на методите при работа со трејтови во ООП во 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', бидејќи трејтот има приоритет
?>