PHP 5 führt das final Schlüsselwort ein, welches Kindklassen davon abhält
Methoden zu überladen, indem man der Definition final voranstellt. Wenn die
Klasse selbst als final definiert wird, kann sie nicht erweitert werden.
Beispiel 19-29. Beispiele für final Methoden
<?php class BaseClass { public function test() { echo "BaseClass::test() aufgerufen\n"; } final public function moreTesting() { echo "BaseClass::moreTesting() aufgerufen\n"; } }
class ChildClass extends BaseClass { public function moreTesting() { echo "ChildClass::moreTesting() aufgerufen\n"; } } // Erzeugt einen fatalen Fehler: Cannot override final method BaseClass::moreTesting() ?>
|
|
Beispiel 19-30. Beispiel für final Klassen
<?php final class BaseClass { public function test() { echo "BaseClass::test() aufgerufen\n"; }
// Es macht hier keinen Unterschied, ob die Methode final ist oder nicht final public function moreTesting() { echo "BaseClass::moreTesting() aufgerufen\n"; } }
class ChildClass extends BaseClass { } // Erzeugt einen fatalen Fehler: Class ChildClass may not inherit from final class (BaseClass) ?>
|
|