Sobes.tech
Junior

Qu'est-ce que le polymorphisme en programmation?

sobes.tech IA

Réponse de l'IA

Le polymorphisme est la capacité des objets de différentes classes à réagir différemment à un même appel de méthode. Cela est réalisé en utilisant l'héritage, les classes abstraites et les interfaces. En C#, le polymorphisme se manifeste par la redéfinition (overriding) des méthodes de la classe de base dans les classes dérivées et par la surcharge (overloading) des méthodes.

Exemples de polymorphisme :

  1. Redéfinition de méthodes (Polymorphisme à l'exécution) : La classe dérivée fournit sa propre implémentation d'une méthode déclarée dans la classe de base. Pour cela, dans la classe de base, on utilise le mot-clé virtual, et dans la dérivée, override.

    // Classe de base
    class Shape
    {
        // Méthode virtuelle pouvant être redéfinie
        public virtual void Draw()
        {
            // Implémentation par défaut
        }
    }
    
    // Classe dérivée 1
    class Circle : Shape
    {
        // Redéfinition de la méthode Draw
        public override void Draw()
        {
            // Implémentation pour un cercle
        }
    }
    
    // Classe dérivée 2
    class Square : Shape
    {
        // Redéfinition de la méthode Draw
        public override void Draw()
        {
            // Implémentation pour un carré
        }
    }
    

    Dans ce cas, on peut créer une liste d'objets Shape et appeler la méthode Draw pour chacun, ce qui entraînera l'exécution de l'implémentation spécifique à chaque type de figure.

  2. Surcharge de méthodes (Polymorphisme à la compilation) : Plusieurs méthodes avec le même nom mais avec des signatures différentes (nombre ou types de paramètres) dans une même classe.

    class Calculator
    {
        // Méthode surchargee Add (pour int)
        public int Add(int x, int y)
        {
            return x + y;
        }
    
        // Méthode surchargee Add (pour double)
        public double Add(double x, double y)
        {
            return x + y;
        }
    }
    

Le polymorphisme favorise la création d'un code plus flexible, extensible et facile à maintenir. Il permet d'écrire un code générique qui peut fonctionner avec des objets de différents types.