Mbinu za Abstract za Traits katika OOP katika PHP
Katika traits, baadhi ya mbinu zinaweza kutanguliwa kuwa abstract. Katika kesi hiyo, darasa linalotumia trait hii, italazimika kutekeleza mbinu kama hiyo. Wakati huo huo, mbinu za abstract za trait haziwezi kuwa private.
Wacha tuangalie kwa mfano. Hebu tuseme tuna trait kama hii:
<?php
trait TestTrait
{
public function method1()
{
return 1;
}
abstract public function method2();
}
?>
Hebu tuseme trait yetu inatumiwa na darasa Test.
Uwepo wa mbinu abstract katika trait utamlazimisha
programmer aitengeneze katika darasa, vinginevyo
kutakuwapo na kosa la PHP.
Wacha tutengeneze darasa Test pamoja na
mbinu method2:
<?php
class Test
{
use TestTrait; // tunatumia trait
// Tunatekeleza mbinu abstract:
public function method2()
{
return 2;
}
}
new Test;
?>
Nakili msimbo wa trait yangu TestTrait
na msimbo wa darasa langu Test. Ondoa kutoka
darasa mbinu method2. Hakikisha kuwa
kukosekana kwa utekelezaji wake kunasababisha
kosa la PHP.