Utilizzo dei tratti nei tratti

I tratti, come le classi, possono anche utilizzare altri tratti. Diamo un'occhiata a un esempio. Supponiamo di avere questo tratto con due metodi:

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

Supponiamo di avere anche un altro tratto:

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

Colleghiamo il tratto Trait1 al tratto Trait2:

Trait3.php<?php
  trait Trait2
  {
    use Trait1; // utilizziamo il primo tratto
    
    private function method3()
    {
      return 3;
    }
  }
?>

Dopo questo collegamento, risulterà che Trait2 oltre ai propri metodi avrà anche i metodi del tratto Trait1. Verifichiamolo: creiamo una classe Test, colleghiamo ad essa il tratto Trait2 e assicuriamoci che nella nostra classe appariranno i metodi sia del primo tratto, che del secondo:

Test.php<?php
  class Test
  {
    use Trait2; // colleghiamo il secondo tratto
    
    public function __construct()
    {
      echo $this->method1(); // metodo del primo tratto
      echo $this->method2(); // metodo del primo tratto
      echo $this->method3(); // metodo del secondo tratto
    }
  }
?>
Задание 1

Crea autonomamente gli stessi tratti, come i miei e collegali alla classe Test. Crea in questa classe il metodo getSum, che restituisce la somma dei risultati dei metodi dei tratti collegati.