Treýtlary treýtlarda ulanmak

Treýtlar, klaslara meňzeş şekilde, beýleki treýtlary hem ulanyp biler. Geliň bir mysal üsti bilen göreli. Bizde iki metodi bolan şeýle bir treýt bar bolsun:

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

Bizde ýene bir treýt hem bar bolsun:

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

Geliň Trait2 treýtyna Trait1 treýtyny birikdireli:

Trait3.php<?php
  trait Trait2
  {
    use Trait1; // birinji treýty ulanýarys
    
    private function method3()
    {
      return 3;
    }
  }
?>

Şeýle birikdirmeden soň, Trait2 treýty öz metodlaryndan başga-da, Trait1 treýtynyň metodlaryna hem eýe bolar. Muny barlap göreli: Test klasyny düzeliň, oňa Trait2 treýtyny birikdiriň we klasymyzda hem birinji, hem ikinji treýtlaryň metodlarynyň peýda bolandygyna göz ýetireliň:

Test.php<?php
  class Test
  {
    use Trait2; // ikinji treýty birikdirýäris
    
    public function __construct()
    {
      echo $this->method1(); // birinji treýtyň metodu
      echo $this->method2(); // birinji treýtyň metodu
      echo $this->method3(); // ikinji treýtyň metodu
    }
  }
?>
Задание 1

Özbaşyna meniňki ýaly treýtlary düzüň we olary Test klasyna birikdiriň. Bu klasda getSum metodyny düzüň, bu metod birikdirilen treýtlaryň metodlarynyň jemi netijesini gaýtarmaly.