PHP OOPda Treytlarning Abstrakt Metodlari

Treytlarda ba'zi metodlarni abstrakt deb e'lon qilish mumkin. Bunda, ushbu treytdan foydalanadigan klass bunday metodni amalga oshirishga majbur bo'ladi. Bunda, treytning abstrakt metodlari maxsus bo'lishi mumkin emas.

Keling, bir misolni ko'rib chiqaylik. Faraz qilaylik, bizda quyidagi treyt mavjud:

TestTrait.php<?php
  trait TestTrait
  {
    public function method1()
    {
      return 1;
    }
    
    abstract public function method2();
  }
?>

Faraz qilaylik, bizning treytimiz Test klassi tomonidan ishlatiladi. Treytda abstrakt metodning mavjudligi dasturchini uni klassda amalga oshirishga majbur qiladi, aks holda PHP xatoligi yuz beradi.

Keling, Test klassini method2 metodi bilan birga yarataylik:

Test.php<?php
  class Test
  {
    use TestTrait; // treytni ishlatamiz
    
    // Abstrakt metodni amalga oshiramiz:
    public function method2()
    {
      return 2;
    }
  }
  
  new Test;
?>
Задание 1

Mening TestTrait treytim va Test klassim kodini nusxalang. Klassdan method2 metodini o'chiring. Uning amalga oshirilmasligi PHP xatoligiga olib kelishiga ishonch hosil qiling.