Précédent Suivant

Programmation orienté objet

Les classes et les objets (PHP 4)
Redéfinition

Il est possible, dans une sous-classe, de re-déclarer les mêmes attributs que ceux de la classe parent en leur donnant une valeur par défaut différente, ainsi que les mêmes méthodes en leur donnant une fonctionnalité différente : c’est la redéfinition.

La redéfinition d’attributs ou de méthodes dans une sous-classe n’affecte pas la classe parent. Lorsqu’une redéfinition est fournie, elle devient prépondérante et remplace la définition d’origine. PHP ne permet pas de redéfinir une fonction tout en gardant la possibilité d’invoquer la version définie dans le parent.

Exemple :

<?php
   
class A {
           
var $attribut = "valeur défaut";
        
function operation() {
                
echo "<b>Définition d'une classe</b><br>";
                
echo "La valeur de \$attribut est $this->attribut";
                
echo "<br><br>";
        
}
   
}

   
class B extends A {
        
var $attribut = "valeur différente";
        
function operation() {
                
echo "<b>Nouvelle définition</b><br>";
                
echo "La valeur de \$attribut est $this->attribut";
                
echo "<br><br>";
         
}
   
}

   
//Instanciation de la classe A dans l'Objet a
   
$a = new A();
   
/* affiche : Définition d'une classe
   
La valeur de $attribut est valeur défaut*/
   
$a->operation();

   
//Instanciation de la classe B dans l'Objet b
   
$b = new B();
   
/* affiche : Nouvelle définition
   
valeur de $attribut est valeur différente*/
   
$b->operation();
?>

 

Précédent Suivant