5.14.POLYMORPHISME

    Notions générales sur le concept

    Plan de ce chapitre:

    Introduction
     
     
    Exercice pratique en Delphi (polymorphisme et classe abstraite)

    Polymorphisme (autres chapitres) :

    d'objet

    par héritage de méthode

    par héritage de classes abstraites

    par implémentation d'interfaces
     
     

     
    Introduction
     

    Rappelons que la POO regroupe certains concepts fondamentaux. L'encapsulation des membres sous des visibilités de types publics, privés ou protégés a trait à la capacité d'un objet de posséder en lui-même les données et les actions qui caractérisent son comportement. Le concept d'héritage permet quant à lui la factorisation des fonctionnalités d'objets dénommés parents ou ancêtres vers d'autres objets dénommés leurs enfants ou descendants. Il y a un concept essentiel en POO désignant la capacité d'une hiérarchie de classes à fournir différentes implémentations de méthodes portant le même nom et par corollaire la capacité qu'ont des objets enfants de modifier les comportements hérités de leur parents. Ce concept d'adaptation à différentes "situations" se dénomme le polymorphisme.

    Le concept actuel de polymorphisme en POO peut être implémenté à plusieurs niveaux :

    Polymorphisme d'objet
    C'est une interchangeabilité entre variables d'objets de classes de la même hiérachie sous certaines conditions,  que dénommons le polymorphisme d'objet.

    Polymorphisme par héritage de méthode
    Lorsqu'une classe enfant hérite d'une classe mère, des méthodes supplémentaires nouvelles peuvent être implémentées dans la classe enfant mais aussi des méthodes des parents substituées pour obtenir des implémentations différentes.

    Polymorphisme par héritage de classes abstraites
    Une classe abstraite est une classe qui ne peut pas s'instancier elle-même ; elle doit être héritée. Certains membres de la classe peuvent ne pas être implémentés, et c'est à la classe qui hérite de fournir cette implémentation.

    Polymorphisme par implémentation d'interfaces
    Une interface décrit la signature complète des membres qu'une classe doit implémenter, mais elle laisse l'implémentation de tous ces membres à la charge de la classe d'implémentation de l'interface.