Abstracte methoden in traits in OOP in PHP
In traits kunnen sommige methoden als abstract worden gedeclareerd. In dat geval is de klasse die deze trait gebruikt, verplicht om een dergelijke methode te implementeren. Abstracte methoden van een trait kunnen niet privé zijn.
Laten we een voorbeeld bekijken. Stel dat we de volgende trait hebben:
<?php
trait TestTrait
{
public function method1()
{
return 1;
}
abstract public function method2();
}
?>
Stel dat onze trait wordt gebruikt door de klasse Test.
De aanwezigheid van een abstracte methode in de trait verplicht
de programmeur om deze te implementeren in de klasse, anders
zal er een PHP-fout optreden.
Laten we de klasse Test maken samen met
methode method2:
<?php
class Test
{
use TestTrait; // gebruiken de trait
// Implementeren de abstracte methode:
public function method2()
{
return 2;
}
}
new Test;
?>
Kopieer de code van mijn trait TestTrait
en de code van mijn klasse Test. Verwijder uit
de klasse de methode method2. Zorg ervoor
dat de afwezigheid van de implementatie ervan leidt
tot een PHP-fout.