Prioritet for metoder ved arbeid med trekk i OOP i PHP

Hvis en klasse og et trekk har en metode med samme navn, vil klassens metode overstyre trekkets metode:

php<?php
  trait TestTrait
  {
    // Metode med navnet method:
    public function method()
    {
      return 'trait';
    }
  }
  
  class TestClass
  {
    use TestTrait;
    
    // Samme metode med navnet method:
    public function method()
    {
      return 'test';
    }
  }
  
  $test = new TestClass;
  echo $test->method(); // vil skrive ut 'test' - klassens egen metode ble utført
?>

Hvis selve klassen ikke har en slik metode, men det er en navnekonflikt mellom trekkets metoder og forelderklassens metoder, har trekkets metoder prioritet:

php<?php
  trait TestTrait
  {
    // Metode med navnet method:
    public function method()
    {
      return 'trait';
    }
  }
  
  // Forelderklasse:
  class ParentClass
  {
    // Metode med navnet method:
    public function method()
    {
      return 'parent';
    }
  }
  
  // Klassen arver metoden method fra forelder:
  class TestClass extends ParentClass
  {
    use TestTrait;
  }
  
  $test = new TestClass;
  echo $test->method(); // vil skrive ut 'trait', fordi trekket har prioritet
?>