Langage C# – Le polymorphisme par héritage

Le polymorphisme par héritage consiste à définir une méthode ou une propriété virtuelle (avec le mot clé virtual) dans une classe de base, afin d’avoir la possibilité de la redéfinir dans les classes dérivées (avec le mot clé override) :

public class FormeGeometrique
{
    // Membres de la classe

    public virtual void Afficher()
    {
        // Implémentation.
    }
}

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

La méthode Afficher dans FormeGeometrique propose une implémentation standard pour toutes les formes géométriques. Les classes dérivées peuvent accepter cette implémentation et ne redéfinissent pas cette méthode. Cependant cette implémentation peut convenir partiellement ou ne pas convenir du tout.

Dans le cas où l’implémentation convient partiellement dans la classe Rectangle, la méthode Afficher peut y être redéfinie en mode « complétion ». Dans ce mode, la méthode dans la classe de base est appelée avec l’instruction base.Afficher() et un bloc d’instructions peut précéder et/ou suivre cette instruction. Voici un exemple :

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

        base.Afficher();

        // Implémentation.
    }
}

Dans le cas où l’implémentation ne convient pas dans la classe Rectangle, la méthode Afficher peut y être redéfinie en mode « annuler et remplace ». Dans ce mode, la méthode dans la classe de base n’est pas appelée.

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é.