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:
<?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:
<?php
class Test
{
use TestTrait; // treytni ishlatamiz
// Abstrakt metodni amalga oshiramiz:
public function method2()
{
return 2;
}
}
new Test;
?>
Mening TestTrait treytim va Test klassim kodini nusxalang.
Klassdan method2 metodini o'chiring.
Uning amalga oshirilmasligi PHP xatoligiga olib kelishiga ishonch hosil qiling.