Utilizarea trait-urilor în trait-uri

Trait-urile, similar claselor, pot folosi de asemenea alte trait-uri. Să ne uităm la un exemplu. Să presupunem că avem următorul trait cu două metode:

Trait1.php<?php
  trait Trait1
  {
    private function method1()
    {
      return 1;
    }
    
    private function method2()
    {
      return 2;
    }
  }
?>

Să presupunem că avem încă un trait:

Trait2.php<?php
  trait Trait2
  {
    private function method3()
    {
      return 3;
    }
  }
?>

Să conectăm trait-ul Trait1 la trait-ul Trait2:

Trait3.php<?php
  trait Trait2
  {
    use Trait1; // folosim primul trait
    
    private function method3()
    {
      return 3;
    }
  }
?>

După această conectare, rezultă că Trait2 pe lângă metodele sale va avea și metodele trait-ului Trait1. Să verificăm acest lucru: să creăm clasa Test, să conectăm la ea trait-ul Trait2 și să ne asigurăm că în clasa noastră vor apărea metode atât din primul trait, cât și din al doilea:

Test.php<?php
  class Test
  {
    use Trait2; // conectăm al doilea trait
    
    public function __construct()
    {
      echo $this->method1(); // metoda primului trait
      echo $this->method2(); // metoda primului trait
      echo $this->method3(); // metoda celui de-al doilea trait
    }
  }
?>
Задание 1

Realizați independent aceleași trait-uri, ca și ale mele și conectați-le la clasa Test. Realizați în această clasă metoda getSum, care returnează suma rezultatelor metodelor trait-urilor conectate.