Prioridad de métodos al trabajar con traits en POO en PHP

Si una clase y un trait tienen un método homónimo, el método de la clase anulará el método del trait:

php<?php
  trait TestTrait
  {
    // Método con nombre method:
    public function method()
    {
      return 'trait';
    }
  }
  
  class TestClass
  {
    use TestTrait;
    
    // El mismo método con nombre method:
    public function method()
    {
      return 'test';
    }
  }
  
  $test = new TestClass;
  echo $test->method(); // mostrará 'test' - se ejecutó el método de la clase misma
?>

Si la clase misma no tiene tal método, pero hay un conflicto de nombres entre los métodos del trait y los métodos de la clase padre, entonces los métodos del trait tienen prioridad:

php<?php
  trait TestTrait
  {
    // Método con nombre method:
    public function method()
    {
      return 'trait';
    }
  }
  
  // Clase padre:
  class ParentClass
  {
    // Método con nombre method:
    public function method()
    {
      return 'parent';
    }
  }
  
  // La clase hereda el método method del padre:
  class TestClass extends ParentClass
  {
    use TestTrait;
  }
  
  $test = new TestClass;
  echo $test->method(); // mostrará 'trait', porque el trait tiene prioridad
?>