Выкарыстанне трэйтаў у трэйтах

Трэйты, падобна класам, таксама могуць выкарыстоўваць іншыя трэйты. Давайце паглядзім на прыкладзе. Хай у нас ёсць вось такі трэйт з двума метадамі:

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, які вяртае суму вынікаў метадаў падключаных трэйтаў.