Абстрактыя метады трэйтаў у ААП у PHP

У трэйтах можна некаторыя метады аб'яўляць абстрактнымі. У гэтым выпадку клас, які выкарыстоўвае гэты трэйт, абавязаны будзе рэалізаваць такі метад. Пры гэтым абстрактыя метады трэйта не могуць быць прыватнымі.

Давайце паглядзім на прыкладзе. Хай у нас ёсць вось такі трэйт:

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

Хай наш трэйт выкарыстоўваецца класам Test. Наяўнасць у трэйце абстрактнага метаду абавязае праграміста рэалізаваць яго ў класе, інакш будзе памылка PHP.

Давайце зробім клас Test разам з метадам method2:

Test.php<?php
  class Test
  {
    use TestTrait; // выкарыстоўваем трэйт
    
    // Рэалізуем абстрактны метад:
    public function method2()
    {
      return 2;
    }
  }
  
  new Test;
?>
Задание 1

Скапіюйце код майго трэйта TestTrait і код майго класа Test. Выдаліце з класа метад method2. Пераканайцеся ў тым, што адсутнасць яго рэалізацыі прывядзе да памылкі PHP.