Sobes.tech
Junior — Middle

Tudsz példát mondani, ami szemlélteti az objektumorientált programozás különböző típusú polimorfizmusait?

sobes.tech MI

Válasz az MI-től

A tárgyorientált programozásban a polimorfizmus lehetővé teszi, hogy különböző osztályok objektumai különböző módon kezeljék ugyanazzal a névvel hívott metódusokat.

1. Fordítási időben történő polimorfizmus (statikus polimorfizmus):

  • Metódus túlterhelés: több metódus ugyanazzal a névvel, de különböző paraméterekkel.
class Calculator {
    func add(a: Int, b: Int) -> Int {
        return a + b
    }
    func add(a: Double, b: Double) -> Double {
        return a + b
    }
}

2. Futási időben történő polimorfizmus (dinamikus polimorfizmus):

  • Metódus felülírás alosztályokban.
class Animal {
    func sound() {
        print("Valamilyen hang")
    }
}

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

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

let animals: [Animal] = [Dog(), Cat()]
for animal in animals {
    animal.sound()  // Kiírja "Ugat" és "Miau"
}

Így a polimorfizmus lehetővé teszi, hogy egy egységes felületet használjunk különböző típusú objektumokkal való munkához.