Tudnál felsorolni különböző típusú polimorfizmust az objektumorientált programozásban?
sobes.tech MI
Válasz az MI-től
A tárgyorientált programozásban (OOP) több fő polimorfizmus típus különíthető el:
-
Al-típusú polimorfizmus (Subtype Polymorphism) — a legelterjedtebb típus, öröklés és metódus felülírás révén valósul meg. Lehetővé teszi az alosztályok objektumainak használatát a bázissal szemben.
-
Parametrikus polimorfizmus (Parametric Polymorphism) — általános típusok (generikusok) segítségével valósul meg, amikor függvények vagy osztályok bármilyen adattípussal működnek.
-
Ad-hoc polimorfizmus (Ad-hoc Polymorphism) — függvények és operátorok túlterhelését foglalja magában, amikor egy függvény több implementációval rendelkezik különböző paramétertípusokra.
-
Futásidejű polimorfizmus (Runtime Polymorphism) — virtuális metódusok és dinamikus kötés révén érhető el, amikor a metódushívás futásidőben dől el.
Swift (iOS) példája al-típusú polimorfizmusról:
class Animal {
func sound() {
print("Valamilyen hang")
}
}
class Dog: Animal {
override func sound() {
print("ugat")
}
}
class Cat: Animal {
override func sound() {
print("miau")
}
}
let animals: [Animal] = [Dog(), Cat()]
for animal in animals {
animal.sound() // A metódushívás az objektum tényleges típusától függ
}