Metódusok prioritása trait-ekkel való munkavégzéskor az OOP-ban PHP-ben

Ha egy osztályban és egy trait-ben is van azonos nevű metódus, akkor az osztály metódusa felülírja a trait metódusát:

php<?php
  trait TestTrait
  {
    // Metódus method névvel:
    public function method()
    {
      return 'trait';
    }
  }
  
  class TestClass
  {
    use TestTrait;
    
    // Ugyanaz a metódus method névvel:
    public function method()
    {
      return 'test';
    }
  }
  
  $test = new TestClass;
  echo $test->method(); // kiírja 'test' - az osztály saját metódusa futott le
?>

Ha magának az osztálynak nincs ilyen metódusa, de névütközés van a trait metódusai és a szülőosztály metódusai között, akkor a trait metódusainak van prioritása:

php<?php
  trait TestTrait
  {
    // Metódus method névvel:
    public function method()
    {
      return 'trait';
    }
  }
  
  // Szülőosztály:
  class ParentClass
  {
    // Metódus method névvel:
    public function method()
    {
      return 'parent';
    }
  }
  
  // Az osztály örökli a method metódust a szülőtől:
  class TestClass extends ParentClass
  {
    use TestTrait;
  }
  
  $test = new TestClass;
  echo $test->method(); // kiírja 'trait', mert a trait-nek van prioritása
?>