Коришћење трејтова у трејтовима

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

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, који враћа збир резултата метода прикључених трејтова.