Absztrakt metódusok traitokban az OOP-ban PHP-ben

A traitekben néhány metódust absztraktnak lehet deklarálni. Ebben az esetben az ezt a traitet használó osztály köteles lesz megvalósítani egy ilyen metódust. Ebben az esetben a trait absztrakt metódusai nem lehetnek privátak.

Nézzük egy példán. Tegyük fel, hogy van egy ilyen traitünk:

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

Tegyük fel, hogy a Test osztály használja a traitünket. Az absztrakt metódus jelenléte a traitben kötelezővé teszi a programozó számára, hogy valósítsa meg az osztályban, különben PHP hiba lép fel.

Készítsük el a Test osztályt a method2 metódussal együtt:

Test.php<?php
  class Test
  {
    use TestTrait; // trait használata
    
    // Absztrakt metódus megvalósítása:
    public function method2()
    {
      return 2;
    }
  }
  
  new Test;
?>
Задание 1

Másolja a TestTrait trait kódját és a Test osztály kódját. Távolítsa el az osztályból a method2 metódust. Győződjön meg arról, hogy a megvalósítás hiánya PHP hibához vezet.