Sobes.tech
Junior — Middle

Можеш ли да набројиш различите типове полиморфизма у објектно-оријентисаном програмирању?

sobes.tech АИ

Одговор од АИ

U objektno-orijentisanom programiranju (OOP) razlikuju se nekoliko osnovnih tipova polimorfizma:

  1. 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.

  2. Parametarski polimorfizam (Parametric Polymorphism) — realizuje se putem generičkih tipova, kada funkcije ili klase rade sa bilo kojim tipom podataka.

  3. 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.

  4. 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
}