Manuel PHP

Mot-clé "final"

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.

Example#1 Exemple de méthode finale

  1. <?php
  2. class BaseClass {  
  3. public function test() { 
  4.    echo "BaseClass::test() appelé\n";  
  5. }  
  6.  
  7. final public function moreTesting() { 
  8.    echo "BaseClass::moreTesting() appelé\n";  
  9. }  
  10. }  
  11.  
  12. class ChildClass extends BaseClass {  
  13. public function moreTesting() { 
  14.    echo "ChildClass::moreTesting() appelé\n";  
  15. }  
  16. }  
  17. // Résultat : Fatal error: Cannot override final method BaseClass::moreTesting()
  18. ?> 

Example#2 Exemple de classe finale

  1. <?php
  2. final class BaseClass {  
  3. public function test() { 
  4.    echo "BaseClass::test() appelé\n";  
  5. }  
  6.  
  7. // Ici, peut importe si vous spécifiez la fonction en finale ou pas
  8. final public function moreTesting() { 
  9.    echo "BaseClass::moreTesting() appelé\n";  
  10. }  
  11. }  
  12.  
  13. class ChildClass extends BaseClass {  
  14. }  
  15. // Résultat : Fatal error: Class ChildClass may not inherit from final class (BaseClass)
  16. ?> 

Remonter Remonter
L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Breizh Blog