Ce este polimorfismul în programare?
sobes.tech AI
Răspuns de la AI
Polimorfismul este capacitatea obiectelor din clase diferite de a răspunde diferit la aceeași apelare a metodei. Acest lucru se realizează prin utilizarea moștenirii, claselor abstracte și interfețelor. În C#, polimorfismul se manifestă prin suprascrierea (overriding) metodelor clasei de bază în clasele derivate și prin supraincarcarea (overloading) metodelor.
Exemple de polimorfism:
-
Suprascrierea metodelor (Polimorfism în timpul execuției): Clasa derivată oferă propria implementare a unei metode declarate în clasa de bază. Pentru aceasta, în clasa de bază se folosește cuvântul cheie
virtual, iar în clasa derivatăoverride.// Clasa de bază class Shape { // Metodă virtuală care poate fi suprascrisă public virtual void Draw() { // Implementare implicită } } // Clasa derivată 1 class Circle : Shape { // Suprascrierea metodei Draw public override void Draw() { // Implementare pentru cerc } } // Clasa derivată 2 class Square : Shape { // Suprascrierea metodei Draw public override void Draw() { // Implementare pentru pătrat } }În acest caz, se poate crea o listă de obiecte
Shapeși apela metodaDrawpentru fiecare, iar va fi apelată implementarea specifică pentru fiecare tip de figură. -
Supraincarcarea metodelor (Polimorfism în timpul compilării): Mai multe metode cu același nume, dar cu semnături diferite (număr sau tipuri de parametri) în aceeași clasă.
class Calculator { // Metodă suprascrisă Add (pentru int) public int Add(int x, int y) { return x + y; } // Metodă suprascrisă Add (pentru double) public double Add(double x, double y) { return x + y; } }
Polimorfismul favorizează crearea unui cod mai flexibil, extensibil și ușor de întreținut. Permite scrierea unui cod generic care poate lucra cu obiecte de diferite tipuri.