Sobes.tech
Junior — Middle

Poți enumera diferitele tipuri de polimorfism în programarea orientată pe obiecte?

sobes.tech AI

Răspuns de la AI

În programarea orientată pe obiect (OOP), se disting mai multe tipuri principale de polimorfism:

  1. Polimorfismul de subtip (Subtype Polymorphism) — cel mai răspândit tip, implementat prin moștenire și suprascrierea metodelor. Permite utilizarea obiectelor subclase în locul obiectelor clasei de bază.

  2. Polimorfismul parametric (Parametric Polymorphism) — realizat prin tipuri generice, când funcțiile sau clasele lucrează cu orice tip de date.

  3. Polimorfismul ad-hoc (Ad-hoc Polymorphism) — include suprasarcina funcțiilor și operatorilor, când o funcție are mai multe implementări cu diferite tipuri de parametri.

  4. Polimorfismul în timpul execuției (Runtime Polymorphism) — se obține prin metode virtuale și legare dinamică, când apelul metodei este determinat în timpul execuției.

Exemplu de polimorfism de subtip în Swift (iOS):

class Animal {
    func sound() {
        print("Un sunet")
    }
}

class Dog: Animal {
    override func sound() {
        print("Lătrat")
    }
}

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

let animals: [Animal] = [Dog(), Cat()]
for animal in animals {
    animal.sound()  // Apelul metodei depinde de tipul real al obiectului
}