Prioridade de métodos ao trabalhar com traits na POO em PHP

Se uma classe e uma trait tiverem um método com o mesmo nome, o método da classe substituirá o método da trait:

php<?php
  trait TestTrait
  {
    // Método com o nome method:
    public function method()
    {
      return 'trait';
    }
  }
  
  class TestClass
  {
    use TestTrait;
    
    // Método igual com o nome method:
    public function method()
    {
      return 'test';
    }
  }
  
  $test = new TestClass;
  echo $test->method(); // exibirá 'test' - o método da própria classe foi executado
?>

Se a própria classe não tiver esse método, mas houver um conflito de nomes entre os métodos da trait e os métodos da classe pai, então os métodos da trait têm prioridade:

php<?php
  trait TestTrait
  {
    // Método com o nome method:
    public function method()
    {
      return 'trait';
    }
  }
  
  // Classe pai:
  class ParentClass
  {
    // Método com o nome method:
    public function method()
    {
      return 'parent';
    }
  }
  
  // A classe herda o método method da classe pai:
  class TestClass extends ParentClass
  {
    use TestTrait;
  }
  
  $test = new TestClass;
  echo $test->method(); // exibirá 'trait', pois a trait tem prioridade
?>