Junior — Middle
Môžeš uviesť príklad, ktorý ilustruje rôzne druhy polymorfizmu v objektovo orientovanom programovaní?
sobes.tech AI
Odpoveď od AI
V objektovo orientovanom programovaní, polymorfizmus umožňuje objektom rôznych tried, aby spracovávali volania metód s rovnakým názvom rôznymi spôsobmi.
1. Polymorfizmus pri kompilácii (statický polymorfizmus):
- Preťaženie metód: niekoľko metód s rovnakým názvom, ale rôznymi parametrami.
class Calculator {
func add(a: Int, b: Int) -> Int {
return a + b
}
func add(a: Double, b: Double) -> Double {
return a + b
}
}
2. Polymorfizmus pri behu (dynamický polymorfizmus):
- Prepisovanie metód v podtriedach.
class Animal {
func sound() {
print("Nejaký zvuk")
}
}
class Dog: Animal {
override func sound() {
print("Štek")
}
}
class Cat: Animal {
override func sound() {
print("Mňau")
}
}
let animals: [Animal] = [Dog(), Cat()]
for animal in animals {
animal.sound() // Vytlačí "Štek" a "Mňau"
}
Týmto spôsobom umožňuje polymorfizmus používať jednotné rozhranie pre prácu s rôznymi typmi objektov.