Abstracte methoden in traits in OOP in PHP

In traits kunnen sommige methoden als abstract worden gedeclareerd. In dat geval is de klasse die deze trait gebruikt, verplicht om een dergelijke methode te implementeren. Abstracte methoden van een trait kunnen niet privé zijn.

Laten we een voorbeeld bekijken. Stel dat we de volgende trait hebben:

TestTrait.php<?php
  trait TestTrait
  {
    public function method1()
    {
      return 1;
    }
    
    abstract public function method2();
  }
?>

Stel dat onze trait wordt gebruikt door de klasse Test. De aanwezigheid van een abstracte methode in de trait verplicht de programmeur om deze te implementeren in de klasse, anders zal er een PHP-fout optreden.

Laten we de klasse Test maken samen met methode method2:

Test.php<?php
  class Test
  {
    use TestTrait; // gebruiken de trait
    
    // Implementeren de abstracte methode:
    public function method2()
    {
      return 2;
    }
  }
  
  new Test;
?>
Задание 1

Kopieer de code van mijn trait TestTrait en de code van mijn klasse Test. Verwijder uit de klasse de methode method2. Zorg ervoor dat de afwezigheid van de implementatie ervan leidt tot een PHP-fout.