Metode abstracte ale trăsăturilor în OOP în PHP
În trăsături, unele metode pot fi declarate abstracte. În acest caz, clasa care utilizează această trăsătură va trebui să implementeze un astfel de metodă. În același timp, metodele abstracte ale trăsăturii nu pot fi private.
Să ne uităm la un exemplu. Să presupunem că avem următoarea trăsătură:
<?php
trait TestTrait
{
public function method1()
{
return 1;
}
abstract public function method2();
}
?>
Să presupunem că trăsătura noastră este utilizată de clasa Test.
Prezența unei metode abstracte în trăsătură va obliga
programatorul să o implementeze în clasă, altfel
va apărea o eroare PHP.
Să creem clasa Test împreună cu
metoda method2:
<?php
class Test
{
use TestTrait; // utilizăm trăsătura
// Implementăm metoda abstractă:
public function method2()
{
return 2;
}
}
new Test;
?>
Copiați codul trăsăturii mele TestTrait
și codul clasei mele Test. Ștergeți din
clasă metoda method2. Asigurați-vă
că absența implementării acesteia va duce
la o eroare PHP.