Treytlerin treytlerde istifadesi

Treytlər, siniflər kimi, həmçinin digər treytlərdən istifadə edə bilər. Gəlin bir nümunəyə baxaq. Tutaq ki, bizim burada iki metodu olan belə bir treyt var:

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

Tutaq ki, bizim həmçinin başqa bir treyt var:

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

Gəlin Trait2 treytinə Trait1 treytini qoşaq:

Trait3.php<?php
  trait Trait2
  {
    use Trait1; // birinci treyti istifadə edirik
    
    private function method3()
    {
      return 3;
    }
  }
?>

Belə bir qoşulmadan sonra Trait2 treytinin öz metodlarından əlavə, Trait1 treytinin metodları da olacaq. Gəlin bunu yoxlayaq: Test sinifi yaradaq, ona Trait2 treytini qoşaq və sinifimizdə həm birinci treytin, həm də ikinci treytin metodlarının peyda olduğuna əmin olaq:

Test.php<?php
  class Test
  {
    use Trait2; // ikinci treyti qoşuruq
    
    public function __construct()
    {
      echo $this->method1(); // birinci treytin metodu
      echo $this->method2(); // birinci treytin metodu
      echo $this->method3(); // ikinci treytin metodu
    }
  }
?>
Задание 1

Özünüz mənimki kimi eyni treytləri düzəldin və onları Test sinfinə qoşun. Bu sinifdə getSum metodunu düzəldin, hansı ki, qoşulmuş treytlərin metodlarının nəticələrinin cəmini qaytarır.