DÉFINIR L’HÉRITAGE ET LE POLYMORPHISME POO
Principe et intérêt de l’héritage
-
Principe de l’héritage
-
- Le concept de l'héritage spécifie une relation de spécialisation/généralisation entre les classes (Document : livre, revu, …/Personne : étudiant, employé…)
-
- Lorsqu'une classe D hérite d'une classe B :
- D possède toutes les caractéristiques de B et aussi, d'autres caractéristiques qui sont spécifiques à D
- D est une spécialisation de B (un cas particulier)
- B est une généralisation de D (cas général)
- D est appelée classe dérivée (fille)
- B est appelée classe de base (mère ou super-classe)
- Tout objet instancié de D est considéré, aussi, comme un objet de type B
- Un objet instancié de B n'est pas forcément un objet de type D
-
- L'héritage minimise l'écriture du code en regroupant les caractéristiques communes entre classes au sein d’une seule (la classe de base) sans duplication.
-
- Localisation facile, en un point unique, des sections de code.
- La rectification du code se fait dans des endroits uniques grâce à la non redondance de description
- L’extension ou l’ajout de nouvelles classes est favorisée surtout en cas d’une hiérarchie de classes bien conçue
-
- Définition des informations et des comportements aux niveaux opportuns.
- Rapprochement de la modélisation des systèmes d’informations aux cas réels
Types de l’héritage
éritage multiple
Héritage en cascade
Redéfinition des méthodes héritées
-
- Une méthode héritée peut être redéfinie si sa version initiale n'est pas satisfaisante pour la classe dérivée
-
- La redéfinition consiste à conserver l'entête de la méthode et à proposer un code différent
-
- Si une méthode héritée est redéfinie, c'est uniquement la nouvelle version qui fait parti de la description de la classe dérivée
- Si la méthode définie au niveau de la classe dérivée est de type différent, ou de paramètres différents, alors il s’agit d’une nouvelle méthode qui s’ajoute à celle héritée de la classe de base
Mécanisme de la liaison retardée
Soit C la classe réelle d'un objet o à qui on envoie un message « o.m() »
-
- o.m() peut appeler la méthode m() de C ou de n’importe quelle sous-classe de C
- Si le code de la classe C contient la définition (ou la redéfinition) d’une méthode m(), c’est cette méthode qui sera exécutée
-
- Sinon, la recherche de la méthode m() se poursuit dans la classe mère de C, puis dans la classe mère de cette classe mère, et ainsi de suite, jusqu’à trouver la définition d’une méthode m() qui est alors exécutée
Principe de polymorphisme
Ajouter un commentaire
Veuillez vous connecter pour ajouter un commentaire.
Pas encore de commentaires.