Sobes.tech
Junior — Middle

Pouvez-vous donner un exemple illustrant les différents types de polymorphisme en programmation orientée objet?

sobes.tech IA

Réponse de l'IA

La programmation orientée objet permet le polymorphisme, ce qui permet aux objets de différentes classes de traiter différemment les appels de méthodes portant le même nom.

1. Polymorphisme à la compilation (polymorphisme statique):

  • Surcharge de méthodes : plusieurs méthodes avec un nom mais des paramètres différents.
class Calculator {
    func add(a: Int, b: Int) -> Int {
        return a + b
    }
    func add(a: Double, b: Double) -> Double {
        return a + b
    }
}

2. Polymorphisme à l'exécution (polymorphisme dynamique):

  • Redéfinition de méthodes dans des sous-classes.
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()  // Affichera "Aboyer" et "Miaou"
}

Ainsi, le polymorphisme permet d'utiliser une interface unique pour travailler avec différents types d'objets.