Séance D : Héritage
Objectifs
Comprendre le concept d’héritage.
Mettre en oeuvre le concept d’héritage : aidez-vous des TD précédents pour écrire le code demandé.
Principe :
l'héritage est un grand principe de la programmation orientée objet. Une classe qui hérite d’une classe Mère hérite de toutes ses propriétés et de toutes ses méthodes. L’intérêt pour le programmeur est de pouvoir spécialiser la classe Mère (dont le code est éprouvé) en ajoutant à la classe fille de nouvelles propriétés et de nouvelles méthodes.
extends
mot clé qui permet de déclarer l’héritage.
Héritage multiple : une classe peut héritée d’une classe qui hérite elle-même d’une autre classe. Opérateur de résolution de portée : l’opérateur ::
(deux points) fournit un moyen d’accéder aux propriétés et aux méthodes de la classe Mère. Lorsque vous référencez ces éléments en dehors de la définition de la classe, utilisez le nom de la classe.
Exemple de code pour une classe
Exemple d'utilisation de ces classes :
EXERCICE N°1
Créer la classe Animal (animal.php) – Voir séance 2
La classe Animal possède 5 propriétés :
Le nom de l’animal
L’âge (actuel)
L’âge théorique maximum
Le régime alimentaire : tableau d’aliments
état: ‘mort’ ou ‘vivant’ (par défaut, état =’vivant’)
La classe possède les méthodes suivantes :
Son constructeur initialise seulement les propriétés nom, age, age maximum.
lire_informations(), qui affiche le nom, l’âge de l’animal et son état : ’mort’ ou ‘vivant’
mange($aliment) qui ajoute l’aliment donné en argument au tableau d’aliments (propriété régime alimentaire). Attention, un animal mort ne mange plus !
vieillir($nbannees) qui fait vieillir d’un nombre d’années ($nbannees) l’animal => incrémentation de son âge. Lorsqu’on son âge dépasse l’âge maximum, l’animal meurt : état= ‘mort’.
lire_regime() qui affiche la liste des aliments mangés.
Créer l’application (td4_heritage.php)
créer l’instance $bestiole de la classe animal :
Nom : ‘Une drôle de bête’, Age : 1, Age théorique maximum : 10, état : ‘vivant’
Appeler la méthode : mange(‘fruits’)
Appeler la méthode : mange(‘légumes’)
Appeler la méthode : lire_regime()
Appeler la méthode : lire_informations()
Appeler la méthode : vieillir(4)
Appeler la méthode : lire_informations()
Appeler la méthode : vieillir(6)
Appeler la méthode : lire_informations()
EXERCICE N°2
Compléter le fichier animal.php
Ajouter la classe Chien qui hérite de la classe Animal.
La classe Chien possède une propriété : nom familier
Méthodes :
Constructeur
Méthode : seNomme() qui retourne le nom familier
Méthode : lire_informations() surcharge la méthode de la classe Animal. Retourne le nom de l’animal, son age, son état (mort ou vivant) et le nom familier.
Compléter l’application td4_heritage
Créer l’instance $chien1 de la classe Chien :
Nom : 'Chien',
Age : 2,
Age théorique maximum : 20,
etat : ‘vivant’,
Nom familier : ‘Médor’
Appeler la méthode : seNomme() ;
Appeler la méthode : mange(‘viande)
Appeler la méthode : mange(‘croquettes)
Appeler la méthode : lire_regime()
Appeler la méthode : lire_informations() ;
Question Bonus
On pourrait considérer qu'un Chien est un animal dont l'age théorique est toujours le même, et qu'il est fixé à 18 ans. Modifiez la classe Animal avec cette spécificité, et modifiez les appels et le constructeur de la classe Chien en conséquence.
Dernière mise à jour