Qu’est-ce que l’héritage ? Une explication simple de la POO

Deux principes de programmation orientée objet en moins (lisez sur l’abstraction ici et l’encapsulation ici), il en reste deux ! Aujourd’hui, nous allons nous pencher sur l’héritage. Par rapport à l’abstraction et à l’encapsulation, l’héritage est un peu plus simple (à mon avis personnel).

Comme les autres principes de la POO, l’héritage est destiné à optimiser le travail des programmeurs. Le rôle que joue l’héritage dans cette optimisation est de permettre aux ingénieurs logiciels de créer des hiérarchies de classes, où les classes et les objets héritent des propriétés et des comportements de leur classe parent (ou super classe). Une classe qui hérite d’une classe parent (ou super) est appelée sous-classe ou classe enfant, et les objets qui reçoivent des propriétés et des comportements d’un parent par héritage sont appelés objets enfants.

En quoi cela est-il utile ? Une grande partie de l’utilité de l’héritage est la possibilité de réutilisation. Je vais utiliser Noé et l’arche comme exemple. Pour ceux d’entre vous qui ne connaissent pas l’histoire, la Terre est menacée d’un déluge mondial et Noé construit une arche afin de stocker deux de chaque animal terrestre pour qu’ils puissent survivre à la tempête. Imaginons que Noé veuille utiliser un logiciel pour l’aider à suivre tous les animaux de l’arche et leurs différents besoins.

Photo : une représentation d’artistes historiquement exacte de l’arche de Noé (Photo par Dan Kb sur Unsplash)

Créer une classe unique pour chaque animal deviendrait rapidement très répétitif, car certaines propriétés et certains comportements s’appliquent à chaque animal, d’une souris à un éléphant. Les fonctions partagées peuvent inclure feed( ), hydrate( ), cleanEnclosure( ). Au lieu de créer ces attributs partagés encore et encore pour chaque animal, nous pourrions créer une classe parent Animal ! Cette classe parent contiendrait les propriétés et les comportements universels à tous les animaux et nous éviterait de devoir créer ces fonctions partagées à l’infini.

.

peut-être qu’une fonction dontGetEaten( ) serait utile (Photo par Andre Klimke sur Unsplash)

De cette façon , un éléphant, une souris et un chimpanzé auraient tous leur propre classe enfant qui hériterait de la classe parentale Animal. En outre, Noah pourrait continuer à s’appuyer sur ces attributs hérités pour personnaliser davantage ces classes si nécessaire. Enfin, l’héritage nous permet de limiter les risques d’erreur humaine qui pourraient survenir en saisissant manuellement ces fonctions partagées.

La semaine prochaine : le polymorphisme !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *