Métodos abstractos en traits de POO en PHP
En los traits, algunos métodos pueden declararse abstractos. En este caso, la clase que utilice este trait, deberá implementar dicho método. Además, los métodos abstractos del trait no pueden ser privados.
Veamos un ejemplo. Supongamos que tenemos el siguiente trait:
<?php
trait TestTrait
{
public function method1()
{
return 1;
}
abstract public function method2();
}
?>
Supongamos que nuestro trait es utilizado por la clase Test.
La presencia de un método abstracto en el trait obligará
al programador a implementarlo en la clase, de lo contrario
habrá un error de PHP.
Hagamos la clase Test junto con
el método method2:
<?php
class Test
{
use TestTrait; // usamos el trait
// Implementamos el método abstracto:
public function method2()
{
return 2;
}
}
new Test;
?>
Copie el código de mi trait TestTrait
y el código de mi clase Test. Elimine de
la clase el método method2. Verifique
que la ausencia de su implementación lleva
a un error de PHP.