Apstraktne metode trejtova u OOP-u u PHP-u
U trejtovima se neke metode mogu deklarisati kao apstraktne. U tom slučaju, klasa koja koristi ovaj trejt, moraće da implementira takvu metodu. Pritom, apstraktne metode trejta ne mogu biti privatne.
Pogledajmo na primeru. Pretpostavimo da imamo ovakav trejt:
<?php
trait TestTrait
{
public function method1()
{
return 1;
}
abstract public function method2();
}
?>
Pretpostavimo da naš trejt koristi klasa Test.
Prisustvo apstraktne metode u trejtu će obavezati
programera da je implementira u klasi, inače
će doći do greške u PHP-u.
Napravimo klasu Test zajedno sa
metodom method2:
<?php
class Test
{
use TestTrait; // koristimo trejt
// Implementiramo apstraktnu metodu:
public function method2()
{
return 2;
}
}
new Test;
?>
Kopirajte kod mog trejta TestTrait
i kod moje klase Test. Uklonite iz
klase metod method2. Uverite se da
odsustvo njegove implementacije dovodi
do greške u PHP-u.