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:
-
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.
-
Polimorfizm parametryczny (Parametric Polymorphism) — realizowany przez typy generyczne, gdy funkcje lub klasy działają z dowolnymi typami danych.
-
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.
-
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
}