Abstrakte metoder i træk i OOP i PHP

I træk kan nogle metoder erklæres abstrakte. I dette tilfælde vil klassen, der bruger dette træk, være forpligtet til at implementere en sådan metode. Samtidig kan abstrakte metoder i trækket ikke være private.

Lad os se på et eksempel. Antag, at vi har sådan et træk:

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

Antag at vores træk bruges af klassen Test. Tilstedeværelsen af en abstrakt metode i trækket vil forpligte programmøren til at implementere den i klassen, ellers vil der opstå en PHP-fejl.

Lad os oprette klassen Test sammen med metoden method2:

Test.php<?php
  class Test
  {
    use TestTrait; // bruger trækket
    
    // Implementerer den abstrakte metode:
    public function method2()
    {
      return 2;
    }
  }
  
  new Test;
?>
Задание 1

Kopier koden for mit træk TestTrait og koden for min klasse Test. Fjern metoden method2 fra klassen. Vær sikker på at fraværet af dens implementering vil føre til en PHP-fejl.