Употреба на трејтови во трејтови

Трејтовите, слично на класите, исто така можат да користат други трејтови. Ајде да погледнеме на пример. Нека имаме ваков трејт со два методи:

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

Нека имаме и уште еден трејт:

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

Ајде кон трејтот Trait2 да го поврземе трејтот Trait1:

Trait3.php<?php
  trait Trait2
  {
    use Trait1; // го користиме првиот трејт
    
    private function method3()
    {
      return 3;
    }
  }
?>

После ваквото поврзување ќе испадне дека Trait2 покрај своите методи ќе ги има и методите на трејтот Trait1. Ајде да го провериме ова: да направиме класа Test, да и го поврземе трејтот Trait2 и да се увериме дека во нашата класа ќе се појават методи и од првиот трејт, и од вториот:

Test.php<?php
  class Test
  {
    use Trait2; // го поврзуваме вториот трејт
    
    public function __construct()
    {
      echo $this->method1(); // метод на првиот трејт
      echo $this->method2(); // метод на првиот трејт
      echo $this->method3(); // метод на вториот трејт
    }
  }
?>
Задание 1

Самостојно направете исти такви трејтови, како кај мене и поврзете ги со класата Test. Направете во оваа класа метод getSum, кој ја враќа сумата на резултатите од методите на поврзаните трејтови.