Sobes.tech
Junior — Middle

Ar galite išvardyti skirtingus polimorfizmo tipus objektinio programavimo srityje?

sobes.tech AI

Atsakymas iš AI

Objektinio programavimo (OOP) pagrindiniai polimorfizmo tipai yra:

  1. Subtipo polimorfizmas (Subtype Polymorphism) — dažniausiai pasitaikantis tipas, įgyvendinamas per paveldėjimą ir metodų perrašymą. Leidžia naudoti pogrupių objektus vietoj pagrindinio klasės objekto.

  2. Parametrinis polimorfizmas (Parametric Polymorphism) — įgyvendinamas naudojant bendrus tipus (generics), kai funkcijos ar klasės dirba su bet kokio tipo duomenimis.

  3. Ad-hoc polimorfizmas (Ad-hoc Polymorphism) — apima funkcijų ir operatorių perkrovimą, kai viena funkcija turi kelias realizacijas su skirtingais parametrų tipais.

  4. Vykdymo laiko polimorfizmas (Runtime Polymorphism) — pasiekiamas per virtualius metodus ir dinaminį susiejimą, kai metodo iškvietimas nustatomas vykdymo metu.

Pavyzdys subtipų polimorfizmo Swift (iOS):

class Animal {
    func sound() {
        print("Koks nors garsas")
    }
}

class Dog: Animal {
    override func sound() {
        print("Laižymas")
    }
}

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

let animals: [Animal] = [Dog(), Cat()]
for animal in animals {
    animal.sound()  // Metodas iškviečiamas priklausomai nuo objekto tikrojo tipo
}