Langage C# – Le polymorphisme par abstraction

Le polymorphisme par héritage consiste à définir une méthode ou une propriété comme étant abstraite (avec le mot clé abstract) dans une classe de base dans un arbre d’héritage. Comment arrive-t-on dans cette situation ? Tout simplement quand on considère qu’on est « trop haut » dans un arbre héritage pour proposer une implémentation pour le membre.

Une méthode ou propriété d’une classe qui devient abstraite engendre deux conséquences directes :

  • La classe devient abstraite.
  • Le membre doit être redéfini dans les classes héritant de cette classe (excepté si elles sont déclarées abstraites afin de déléguer de nouveau l’implémentation aux classes héritées). Une notion de contrat s’instaure entre la classe de base et ses classes héritées.

Et une conséquence indirecte :

  • La classe devenue abstraite peut être utilisée pour déclarer des objets, mais en aucun cas pour en créer.

Voici un exemple :

public abstract class FormeGeometrique
{
    // Membres de la classe

    public abstract void Afficher();
}

public class Rectangle : FormeGeometrique
{
    public override void Afficher()
    {
        // Implémentation.
    }
}

About: James RAVAILLE

Travaillant avec la plateforme Microsoft .NET depuis 2002, j’alterne les missions de formation et d’ingénierie avec cette plateforme. J’écris ce blog pour transmettre mes connaissances à tout développeur, qu’il soit débutant ou expérimenté.