Abstraktne metode traitov v OOP v PHP
V traitih lahko nekatere metode razglasimo za abstraktne. V tem primeru mora razred, ki uporablja ta trait, implementirati takšno metodo. Pri tem abstraktne metode traita ne smejo biti zasebne.
Poglejmo si na primeru. Recimo, da imamo takšen trait:
<?php
trait TestTrait
{
public function method1()
{
return 1;
}
abstract public function method2();
}
?>
Recimo, da naš trait uporablja razred Test.
Prisotnost abstraktne metode v traitu bo zahtevala
od programerja, da jo implementira v razredu, sicer
bo prišlo do napake PHP.
Naredimo razred Test skupaj z
metodo method2:
<?php
class Test
{
use TestTrait; // uporabimo trait
// Implementiramo abstraktno metodo:
public function method2()
{
return 2;
}
}
new Test;
?>
Kopirajte kodo mojega traita TestTrait
in kodo mojega razreda Test. Izbrišite iz
razreda metodo method2. Prepričajte se,
da bo odsotnost njene implementacije povzročila
napako PHP.