Précédent | Suivant |
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 |