★ À maîtriser
📌 Si la classe A hérite de la classe B, A est la classe fille ou dérivée et B la classe mère ou super-classe ; A est une spécialisation de B et B une généralisation de A.
📌 Toute instance de la classe fille A peut être considérée comme un objet de la classe mère B, mais une instance de B ne peut pas toujours être considérée comme un objet de A.
Compléments
L’héritage factorise le code en regroupant dans une classe mère les caractéristiques communes à plusieurs classes.
Placer les propriétés communes dans la classe mère évite de répéter leur déclaration et leurs modifications dans chaque classe fille.
La classe fille spécialise ; la classe mère généralise.
Dans l’exemple du cours, Étudiant hérite à la fois de Personne et d’Être Vivant.
Si Étudiant hérite de Personne et ÉtudiantDeuxièmeCycle hérite d’Étudiant, alors ÉtudiantDeuxièmeCycle hérite aussi de Personne.
Personne → Étudiant → ÉtudiantDeuxièmeCycle.
📌 Si une classe mère déclare un attribut ou une méthode privé, ses classes filles ne peuvent ni y accéder ni le modifier.
📌 Pour permettre à une classe fille de lire ou de modifier un attribut hérité, la classe mère doit le déclarer protégé.
Privé : inaccessible à la fille ; protégé : accessible à la fille.
★ À maîtriser
📌 L’héritage concerne les classes et leur hiérarchie, tandis que le polymorphisme concerne les méthodes des objets.
Compléments
📌 Une méthode redéfinie dans une classe fille peut aussi être appelée dans sa version initiale déclarée dans la classe mère.
Lorsqu’un objet de classe C appelle une méthode redéfinie, la recherche commence dans C puis remonte vers B et A si la méthode n’y est pas trouvée.
Dans l’exemple Personne–Étudiant, la méthode afficher() redéfinie dans Étudiant ajoute l’affichage de note1 et note2 à celui du nom et du CIN.
Dans la chaîne C → B → A, la recherche de m remonte vers les classes parentes.
📌 La redéfinition change le code d’une méthode héritée en conservant son en-tête, tandis que la surcharge définit plusieurs méthodes de même nom avec des arguments différents.
★ À maîtriser
📌 Une sous-classe ne peut être instanciée que si elle implémente toutes les méthodes abstraites héritées ; sinon, elle reste abstraite et ne peut pas être instanciée.
Compléments
📌 Une classe qui possède au moins une méthode abstraite est obligatoirement abstraite.
★ À maîtriser
📌 Une classe qui implémente plusieurs interfaces doit fournir une implémentation pour toutes les méthodes abstraites de chacune d’elles.
Compléments
Teste tes connaissances sur Piliers de la programmation orientée objet avec 11 questions à choix multiples et corrections détaillées.
1. Quelle relation l’héritage établit-il entre une classe fille et une classe mère ?
2. Si une instance de la classe Chien peut être traitée comme un objet de la classe Animal, quelle conclusion est correcte ?
Mémorisez les concepts clés de Piliers de la programmation orientée objet avec 10 flashcards interactives.
Quelles propriétés une classe fille reprend-elle de sa classe mère ?
Les propriétés de sa classe mère.
Si A hérite de B, comment appelle-t-on la classe A ?
La classe fille ou dérivée.
De combien de classes une classe peut-elle hériter avec l’héritage multiple ?
De plusieurs classes.
Importe ton cours et l'IA génère fiches, QCM et flashcards en 30 secondes.
Générateur de fiches