Informatică Programare
Polimorfismul in programare orientata obiect
Polimorfismul în programarea orientată pe obiecte este capacitatea unui obiect de a se comporta diferit în funcție de context, permițând tratarea unor obiecte de tipuri diferite printr-o interfață comună. În C++, se implementează prin funcții virtuale și clase de bază abstracte.
Funcții virtuale
- Declarare Se adaugă cuvântul cheie 'virtual' în fața unei funcții în clasa de bază. Exemplu: 'virtual void afiseaza()'.
- Suprascriere În clasa derivată, funcția este redefinită folosind aceeași semnătură, opțional cu 'override'.
- Apelare Se apelează prin pointer sau referință la clasa de bază, iar versiunea din clasa derivată este executată.
Exemplu numeric
- 1 Clasa de bază class Forma { public: virtual double arie() { return 0; } };
- 2 Clasa derivată class Cerc : public Forma { double raza; public: Cerc(double r) : raza(r) {} double arie() override { return 3.14 * raza * raza; } };
- 3 Utilizare polimorfică Forma* f = new Cerc(5); cout << f->arie(); // Calculează aria cercului, afișează 78.5
Utilizează pointeri sau referințe la clasa de bază pentru a beneficia de polimorfism.