Можеш ли да набројиш различите типове полиморфизма у објектно-оријентисаном програмирању?
sobes.tech АИ
Одговор од АИ
U objektno-orijentisanom programiranju (OOP) razlikuju se nekoliko osnovnih tipova polimorfizma:
-
Polimorfizam podtipova (Subtype Polymorphism) — najčešći tip, realizovan putem nasleđivanja i prepisivanja metoda. Omogućava korišćenje objekata podklasa umesto objekata osnovne klase.
-
Parametarski polimorfizam (Parametric Polymorphism) — realizuje se putem generičkih tipova, kada funkcije ili klase rade sa bilo kojim tipom podataka.
-
Ad-hoc polimorfizam (Ad-hoc Polymorphism) — uključuje preopterećenje funkcija i operatora, kada jedna funkcija ima više implementacija sa različitim tipovima parametara.
-
Polimorfizam u vreme izvršenja (Runtime Polymorphism) — dostignut putem virtuelnih metoda i dinamičkog povezivanja, kada se poziv metode određuje tokom izvršenja.
Primer podtipa polimorfizma u Swift (iOS):
class Animal {
func sound() {
print("Neki zvuk")
}
}
class Dog: Animal {
override func sound() {
print("Lajanje")
}
}
class Cat: Animal {
override func sound() {
print("Mijau")
}
}
let animals: [Animal] = [Dog(), Cat()]
for animal in animals {
animal.sound() // Poziv metode zavisi od stvarnog tipa objekta
}