Junior — Middle
Tudsz példát mondani, ami szemlélteti az objektumorientált programozás különböző típusú polimorfizmusait?
sobes.tech MI
Válasz az MI-től
A tárgyorientált programozásban a polimorfizmus lehetővé teszi, hogy különböző osztályok objektumai különböző módon kezeljék ugyanazzal a névvel hívott metódusokat.
1. Fordítási időben történő polimorfizmus (statikus polimorfizmus):
- Metódus túlterhelés: több metódus ugyanazzal a névvel, de különböző paraméterekkel.
class Calculator {
func add(a: Int, b: Int) -> Int {
return a + b
}
func add(a: Double, b: Double) -> Double {
return a + b
}
}
2. Futási időben történő polimorfizmus (dinamikus polimorfizmus):
- Metódus felülírás alosztályokban.
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() // Kiírja "Ugat" és "Miau"
}
Így a polimorfizmus lehetővé teszi, hogy egy egységes felületet használjunk különböző típusú objektumokkal való munkához.