Sobes.tech
Junior

Czym jest polimorfizm w programowaniu?

sobes.tech AI

Odpowiedź od AI

Polimorfizm to zdolność obiektów różnych klas do reagowania na te same wiadomości (wywołania metod) w różny sposób.

Mówiąc prościej, ta sama metoda może zachowywać się inaczej w zależności od obiektu, który ją wywołuje. Osiąga się to poprzez dziedziczenie i nadpisywanie metod, a także poprzez użycie interfejsów.

Przykład w Swift:

protocol Animal {
    func makeSound()
}

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

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

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

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

playSound(animal: dog) // Wypisze: Hau
playSound(animal: cat) // Wypisze: Miau

Tutaj funkcja playSound przyjmuje obiekt typu Animal, ale w zależności od konkretnej klasy (Dog lub Cat) wywoływana jest odpowiednia implementacja metody makeSound.