Principe
Une classe peut hériter d'une autre classe, elle hérite de toutes les propriétés et de toutes les méthodes.
Une classe fille
Le mot extends permet l'héritage.
Syntaxe
class MaClasseAutreclasse extends AutreClasse {
}
Prenons pour exemple la classe "Personnel" regroupant les membres du personnel de l'école et la classe fille "Professeur".
Pour exercice, réaliser les classes "Educateur" et "Entretien" qui héritent chacune de "Personnel".
Démo
<?php
class Personnel {
//propriétés initialisées
protected $_nom="inconnu";
protected $_preno="inconnu";
public function __construct($nom,$preno) {
if((!empty($nom) AND is_string($nom))
AND(!empty($preno) AND is_string($preno))){
$this->_nom=$nom;
$this->_preno=$preno;
}
}
public function setNom($nom) {
if (!empty($nom) AND is_string($nom)) {
$this->_nom=$nom;
}
}
public function setPrenom($prenom) {
if (!empty($prenom) AND is_string($prenom)) {
$this->_prenom=$prenom;
}
}
public function getNom() {
return $this->_nom;
}
public function getPrenom() {
return $this->_preno;
}
}
class ProfesseurPersonnel extends Personnel {
private $_diplome=array();
private $_statut;
public function setDiplome($diplome) {
if (!empty($diplome) AND is_array($diplome)) {
$this->_diplome=$diplome;
}
}
public function setStatut($statut) {
if (!empty($statut) AND is_string($statut)) {
$this->_statut=$statut;
}
}
public function getdiplome() {
return $this->_diplome;
}
public function getStatut() {
return $this->_statut;
}
}
//On crée une instance de la classe ProfesseurPersonnel
$p1=new ProfesseurPersonnel("Vandevelde","Louis");
//On affecte la propriété $_diplome
$dip=array("Informatique","Comptabilité","DAP");
$p1->setDiplome($dip);
$v1=$p1->getNom();
$v2=$p1->getPrenom();
$v3=$p1->getDiplome();
var_dump($v1,$v2,$v3);
?>
En pratique
- Un fichier par classe sous la forme: Nomclasse.class.php
- Le nom de la classe commence toujours par une majuscule
- Le nom d'une classe fille commence par son nom suivi du nom de la classe dont elle hérite