Traitien käyttö traiteissa

Traitit, kuten luokat, voivat myös käyttää muita traiteja. Katsotaanpa esimerkkiä. Oletetaan, että meillä on tällainen trait kahdella metodilla:

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

Oletetaan, että meillä on myös toinen trait:

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

Yhdistetään traitiin Trait2 trait Trait1:

Trait3.php<?php
  trait Trait2
  {
    use Trait1; // käytetään ensimmäistä traita
    
    private function method3()
    {
      return 3;
    }
  }
?>

Tällaisen yhdistämisen jälkeen Trait2 sisältää omien metodien lisäksi myös traitin Trait1 metodit. Tarkistetaan tämä: tehdään luokka Test, yhdistetään siihen trait Trait2 ja varmistetaan, että luokkaamme ilmestyvät sekä ensimmäisen traitin että toisen metodit:

Test.php<?php
  class Test
  {
    use Trait2; // yhdistetään toinen trait
    
    public function __construct()
    {
      echo $this->method1(); // ensimmäisen traitin metodi
      echo $this->method2(); // ensimmäisen traitin metodi
      echo $this->method3(); // toisen traitin metodi
    }
  }
?>
Задание 1

Tee itsenäisesti samanlaiset traitit, kuin minulla ja yhdistä ne luokkaan Test. Tee tähän luokkaan metodi getSum, joka palauttaa yhdistettyjen traittien metodien tulosten summan.