PHP 5 introduit le mot-clé "final " qui empêche les classes filles de surcharger une méthode en en préfixant la définition par le mot-clé "final ". Si la classe elle-même est définie comme finale, elle ne pourra pas être étendue.
Exemple 19.29. Exemple de méthode finale
<?php
class
BaseClass
{
public function
test
() {
echo
"BaseClass::test() appelé\n"
;
}
final public function
moreTesting
() {
echo
"BaseClass::moreTesting() appelé\n"
;
}
}
class
ChildClass
extends
BaseClass
{
public function
moreTesting
() {
echo
"ChildClass::moreTesting() appelé\n"
;
}
}
// Résultat : Fatal error: Cannot override final method BaseClass::moreTesting()
?>
Exemple 19.30. Exemple de classe finale
<?php
final class
BaseClass
{
public function
test
() {
echo
"BaseClass::test() appelé\n"
;
}
// Ici, peut importe si vous spécifiez la fonction en finale ou pas
final public function
moreTesting
() {
echo
"BaseClass::moreTesting() appelé\n"
;
}
}
class
ChildClass
extends
BaseClass
{
}
// Résultat : Fatal error: Class ChildClass may not inherit from final class (BaseClass)
?>