Sobes.tech
Junior

Cos'è il polimorfismo nella programmazione?

sobes.tech AI

Risposta dell'AI

Il polimorfismo è la capacità di oggetti di classi diverse di rispondere in modo diverso ai medesimi messaggi (chiamate di metodi).

In parole semplici, lo stesso metodo può comportarsi in modo diverso a seconda dell'oggetto che lo invoca. Ciò si ottiene attraverso l'ereditarietà e la sovrascrittura dei metodi, nonché attraverso l'uso di interfacce.

Esempio in Swift:

protocol Animal {
    func makeSound()
}

class Dog: Animal {
    func makeSound() {
        print("Bau")
    }
}

class Cat: Animal {
    func makeSound() {
        print("Miao")
    }
}

func playSound(animal: Animal) {
    animal.makeSound()
}

let dog = Dog()
let cat = Cat()

playSound(animal: dog) // Stampa: Bau
playSound(animal: cat) // Stampa: Miao

Qui, la funzione playSound accetta un oggetto di tipo Animal, ma a seconda della classe concreta (Dog o Cat), viene chiamata l'implementazione corrispondente del metodo makeSound.