Апстрактни методи на трејтови во ООП во PHP
Во трејтовите некои методи може да се декларираат како апстрактни. Во овој случај, класата што го користи овој трејт, ќе биде должна да го имплементира таков метод. Притоа, апстрактните методи на трејтот не можат да бидат приватни.
Да погледнеме на пример. Нека имаме ваков трејт:
<?php
trait TestTrait
{
public function method1()
{
return 1;
}
abstract public function method2();
}
?>
Нека нашиот трејт се користи од класата Test.
Присуството на апстрактен метод во трејтот ќе го принуди
програмерот да го имплементира во класата, во спротивно
ќе има грешка во PHP.
Ајде да направиме класа Test заедно со
методот method2:
<?php
class Test
{
use TestTrait; // го користиме трејтот
// Го имплементираме апстрактниот метод:
public function method2()
{
return 2;
}
}
new Test;
?>
Копирајте го кодот на мојот трејт TestTrait
и кодот на мојата класа Test. Отстранете ја од
класата методот method2. Уверете се
дека отсуството на неговата имплементација ќе доведе
до грешка во PHP.