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' чыгарат, себеби трейттин артыкчылыгы бар
?>