Abstrakte Methoden von Traits in OOP in PHP
In Traits können einige Methoden als abstrakt deklariert werden. In diesem Fall ist die Klasse, die diesen Trait verwendet, verpflichtet, eine solche Methode zu implementieren. Dabei dürfen abstrakte Methoden eines Traits nicht privat sein.
Schauen wir uns ein Beispiel an. Angenommen, wir haben den folgenden Trait:
<?php
trait TestTrait
{
public function method1()
{
return 1;
}
abstract public function method2();
}
?>
Angenommen, unser Trait wird von der Klasse Test verwendet.
Das Vorhandensein einer abstrakten Methode im Trait verpflichtet den
Programmierer, sie in der Klasse zu implementieren, andernfalls
wird ein PHP-Fehler auftreten.
Erstellen wir die Klasse Test zusammen mit der
Methode method2:
<?php
class Test
{
use TestTrait; // Trait verwenden
// Abstrakte Methode implementieren:
public function method2()
{
return 2;
}
}
new Test;
?>
Kopieren Sie den Code meines Traits TestTrait
und den Code meiner Klasse Test. Entfernen Sie aus
der Klasse die Methode method2. Stellen Sie sicher,
dass das Fehlen ihrer Implementierung zu einem PHP-Fehler führt.