Sobes.tech
Junior — Middle

Czy możesz wymienić różne typy polimorfizmu w programowaniu obiektowym?

sobes.tech AI

Odpowiedź od AI

W programowaniu obiektowym (OOP) wyróżnia się kilka głównych typów polimorfizmu:

  1. Polimorfizm podtypów (Subtype Polymorphism) — najpowszechniejszy typ, realizowany przez dziedziczenie i nadpisywanie metod. Pozwala na używanie obiektów podklas zamiast obiektów klasy bazowej.

  2. Polimorfizm parametryczny (Parametric Polymorphism) — realizowany przez typy generyczne, gdy funkcje lub klasy działają z dowolnymi typami danych.

  3. Polimorfizm ad-hoc (Ad-hoc Polymorphism) — obejmuje przeciążanie funkcji i operatorów, gdy jedna funkcja ma kilka implementacji z różnymi typami parametrów.

  4. Polimorfizm w czasie wykonywania (Runtime Polymorphism) — osiągany przez metody wirtualne i wiązanie dynamiczne, gdy wywołanie metody jest ustalane w czasie wykonywania.

Przykład polimorfizmu podtypów w Swift (iOS):

class Animal {
    func sound() {
        print("Jakiś dźwięk")
    }
}

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

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

let animals: [Animal] = [Dog(), Cat()]
for animal in animals {
    animal.sound()  // Wywołanie metody zależy od rzeczywistego typu obiektu
}