Junior — Middle
Vai vari sniegt piemēru, kas ilustrē dažādus objektorientētās programmēšanas polimorfisma veidus?
sobes.tech AI
Atbilde no AI
Objektorientētajā programmēšanā polimorfisms ļauj dažādu klases objektu apstrādāt metodus ar vienādu nosaukumu dažādos veidos.
1. Kompilācijas laikā notiekošais polimorfisms (statiskais polimorfisms):
- Metožu pārlādēšana: vairāki metodes ar vienu nosaukumu, bet dažādiem parametriem.
class Calculator {
func add(a: Int, b: Int) -> Int {
return a + b
}
func add(a: Double, b: Double) -> Double {
return a + b
}
}
2. Darbības laikā notiekošais polimorfisms (dinamisks polimorfisms):
- Metožu pārrakstīšana apakšklasēs.
class Animal {
func sound() {
print("Kāds skaņa")
}
}
class Dog: Animal {
override func sound() {
print("Rej")
}
}
class Cat: Animal {
override func sound() {
print("Mīca")
}
}
let animals: [Animal] = [Dog(), Cat()]
for animal in animals {
animal.sound() // Izvadīs "Rej" un "Mīca"
}
Tādējādi, polimorfisms ļauj izmantot vienotu saskarni darbam ar dažādu tipu objektiem.