Sobes.tech
Junior — Middle

Peux-tu énumérer les différents types de polymorphisme en programmation orientée objet?

sobes.tech IA

Réponse de l'IA

Dans la programmation orientée objet (POO), plusieurs types principaux de polymorphisme sont distingués :

  1. Polymorphisme de sous-type (Subtype Polymorphism) — le type le plus courant, réalisé par héritage et redéfinition de méthodes. Permet d'utiliser des objets de sous-classes à la place des objets de la classe de base.

  2. Polymorphisme paramétrique (Parametric Polymorphism) — réalisé via des types génériques, lorsque des fonctions ou des classes fonctionnent avec n'importe quel type de données.

  3. Polymorphisme ad-hoc (Ad-hoc Polymorphism) — inclut la surcharge de fonctions et d'opérateurs, lorsqu'une fonction a plusieurs implémentations avec des types de paramètres différents.

  4. Polymorphisme à l'exécution (Runtime Polymorphism) — obtenu par des méthodes virtuelles et le liaison dynamique, lorsque l'appel d'une méthode est déterminé au moment de l'exécution.

Exemple de polymorphisme de sous-type en Swift (iOS) :

class Animal {
    func sound() {
        print("Un son")
    }
}

class Dog: Animal {
    override func sound() {
        print("Aboyer")
    }
}

class Cat: Animal {
    override func sound() {
        print("Miaou")
    }
}

let animals: [Animal] = [Dog(), Cat()]
for animal in animals {
    animal.sound()  // L'appel de la méthode dépend du type réel de l'objet
}