Sobes.tech
Junior — Middle

Môžeš uviesť príklad, ktorý ilustruje rôzne druhy polymorfizmu v objektovo orientovanom programovaní?

sobes.tech AI

Odpoveď od AI

V objektovo orientovanom programovaní, polymorfizmus umožňuje objektom rôznych tried, aby spracovávali volania metód s rovnakým názvom rôznymi spôsobmi.

1. Polymorfizmus pri kompilácii (statický polymorfizmus):

  • Preťaženie metód: niekoľko metód s rovnakým názvom, ale rôznymi parametrami.
class Calculator {
    func add(a: Int, b: Int) -> Int {
        return a + b
    }
    func add(a: Double, b: Double) -> Double {
        return a + b
    }
}

2. Polymorfizmus pri behu (dynamický polymorfizmus):

  • Prepisovanie metód v podtriedach.
class Animal {
    func sound() {
        print("Nejaký zvuk")
    }
}

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

class Cat: Animal {
    override func sound() {
        print("Mňau")
    }
}

let animals: [Animal] = [Dog(), Cat()]
for animal in animals {
    animal.sound()  // Vytlačí "Štek" a "Mňau"
}

Týmto spôsobom umožňuje polymorfizmus používať jednotné rozhranie pre prácu s rôznymi typmi objektov.