PHPにおけるOOPのトレイトの抽象メソッド

トレイトでは、いくつかのメソッドを抽象的に宣言することができます。この場合、そのトレイトを使用するクラスは、そのようなメソッドを実装する義務があります。なお、トレイトの抽象メソッドをプライベートにすることはできません。

例を見てみましょう。次のようなトレイトがあるとします:

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

このトレイトが Test クラスで使用されているとします。トレイト内に抽象メソッドがあると、プログラマはクラス内でそれを実装する必要があり、そうしないとPHPエラーが発生します。

メソッド method2 を持つ Test クラスを作成してみましょう:

Test.php<?php
  class Test
  {
    use TestTrait; // トレイトを使用
    
    // 抽象メソッドを実装:
    public function method2()
    {
      return 2;
    }
  }
  
  new Test;
?>
Задание 1

私のトレイト TestTrait のコードと、私のクラス Test のコードをコピーしてください。クラスからメソッド method2 を削除してください。その実装がないとPHPエラーが発生することを確認してください。