Sobes.tech
Junior — Middle

Kas sa oskad loetleda erinevaid polümorfismi tüüpe objektorienteeritud programmeerimises?

sobes.tech AI

Vastus AI-lt

Objektorienteeritud programmeerimises (OOP) eristatakse mitmeid peamisi polümorfismi tüüpe:

  1. Alamtüübi polümorfism (Subtype Polymorphism) — kõige levinum tüüp, realiseeritud pärimise ja meetodite ülekirjutamise kaudu. See võimaldab kasutada alamtüüpide objekte asendatult põhiklassi objektidega.

  2. Parameetriline polümorfism (Parametric Polymorphism) — realiseeritud üldtüüpide (generics) kaudu, kus funktsioonid või klassid töötavad mis tahes andmetüüpidega.

  3. Ad-hoc polümorfism (Ad-hoc Polymorphism) — hõlmab funktsioonide ja operaatorite ülekoormamist, kus üks funktsioon võib omada mitut erinevat rakendust erinevate parameetritüüpide jaoks.

  4. Aja jooksul polümorfism (Runtime Polymorphism) — saavutatakse virtuaalsete meetodite ja dünaamilise sidumise kaudu, kus meetodi väljakutse määratakse jooksvalt.

Näide alamtüübi polümorfismist Swiftis (iOS):

class Animal {
    func sound() {
        print("Mingi heli")
    }
}

class Dog: Animal {
    override func sound() {
        print("Haugumine")
    }
}

class Cat: Animal {
    override func sound() {
        print("Miau")
    }
}

let animals: [Animal] = [Dog(), Cat()]
for animal in animals {
    animal.sound()  // Meetodi väljakutse sõltub objekti tegelikust tüübist
}