Abstrakte metoder i træk i OOP i PHP
I træk kan nogle metoder erklæres abstrakte. I dette tilfælde vil klassen, der bruger dette træk, være forpligtet til at implementere en sådan metode. Samtidig kan abstrakte metoder i trækket ikke være private.
Lad os se på et eksempel. Antag, at vi har sådan et træk:
<?php
trait TestTrait
{
public function method1()
{
return 1;
}
abstract public function method2();
}
?>
Antag at vores træk bruges af klassen Test.
Tilstedeværelsen af en abstrakt metode i trækket vil forpligte
programmøren til at implementere den i klassen, ellers
vil der opstå en PHP-fejl.
Lad os oprette klassen Test sammen med
metoden method2:
<?php
class Test
{
use TestTrait; // bruger trækket
// Implementerer den abstrakte metode:
public function method2()
{
return 2;
}
}
new Test;
?>
Kopier koden for mit træk TestTrait
og koden for min klasse Test. Fjern
metoden method2 fra
klassen. Vær sikker på
at fraværet af dens implementering vil føre
til en PHP-fejl.