Трейттерді трейттерде қолдану

Трейттер, класстар сияқты, басқа трейттерді де қолдана алады. Мысал арқылы қарастырайық. Бізде екі әдісі бар мынадай трейт бар делік:

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 әдісін жасаңыз, ол қосылған трейттер әдістерінің нәтижелерінің қосындысын қайтарады.