Šta je polimorfizam u programiranju?
sobes.tech АИ
Одговор од АИ
Polimorfizam je sposobnost objekata različitih klasa da reaguju na isti poziv metode na različite načine. To se postiže korišćenjem nasleđivanja, apstraktnih klasa i interfejsa. U C#-u, polimorfizam se manifestuje kroz prepisivanje (overriding) metoda osnovne klase u izvedenim klasama i kroz preopterećenje (overloading) metoda.
Primeri polimorfizma:
-
Prepisivanje metoda (Polimorfizam u vreme izvršavanja): Izvedena klasa pruža sopstvenu implementaciju metode deklarisane u osnovnoj klasi. Za to se u osnovnoj klasi koristi ključna reč
virtual, a u izvedenojoverride.// Osnovna klasa class Shape { // Virtuelna metoda koja može biti prepisana public virtual void Draw() { // Podrazumevana implementacija } } // Izvedena klasa 1 class Circle : Shape { // Prepisivanje metode Draw public override void Draw() { // Implementacija za krug } } // Izvedena klasa 2 class Square : Shape { // Prepisivanje metode Draw public override void Draw() { // Implementacija za kvadrat } }U ovom slučaju, može se napraviti lista objekata
Shapei pozvati metodaDrawza svaki od njih, a biće pozvana specifična implementacija za svaki tip figure. -
Preopterećenje metoda (Polimorfizam u vreme kompajliranja): Više metoda sa istim imenom, ali različitim potpisima (brojem ili tipovima parametara) u istoj klasi.
class Calculator { // Preopterećena metoda Add (za int) public int Add(int x, int y) { return x + y; } // Preopterećena metoda Add (za double) public double Add(double x, double y) { return x + y; } }
Polimorfizam podstiče kreiranje fleksibilnijeg, proširivijeg i lakšeg za održavanje koda. Omogućava pisanje opšteg koda koji može raditi sa objektima različitih tipova.