Трейттердин ичинде Трейттерди колдонуу

Трейттер, класстар сыяктуу эле, башка трейттерди колдонсо болот. Келгиле, мисал менен карап көрөлү. Анда бизде мындай эки методу бар трейт болсун:

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 методуң түзүңүз, ал туташтырылган трейттердин методдорунун натыйжаларынын суммасын кайтарсын.