Čo je to polymorfizmus v programovaní?
sobes.tech AI
Odpoveď od AI
Polymorfizmus je schopnosť objektov rôznych tried reagovať odlišne na rovnaké volanie metódy. Dosahuje sa to použitím dedičnosti, abstraktných tried a rozhraní. V C# sa polymorfizmus prejavuje prepísaním (overriding) metód základnej triedy v odvodených triedach a preťažením (overloading) metód.
Príklady polymorfizmu:
-
Prepísanie metód (Polymorfizmus za behu): Odvodená trieda poskytne vlastnú implementáciu metódy deklarovanej v základnej triede. Na to sa v základnej triede používa kľúčové slovo
virtual, v odvodenýchoverride.// Základná trieda class Shape { // Virtuálna metóda, ktorú možno prepísať public virtual void Draw() { // Predvolená implementácia } } // Odvodená trieda 1 class Circle : Shape { // Prepísanie metódy Draw public override void Draw() { // Implementácia pre kruh } } // Odvodená trieda 2 class Square : Shape { // Prepísanie metódy Draw public override void Draw() { // Implementácia pre štvorec } }V tomto prípade je možné vytvoriť zoznam objektov
Shapea volať metóduDrawpre každý z nich, pričom bude volaná špecifická implementácia pre každý typ figúry. -
Preťaženie metód (Polymorfizmus v čase kompilácie): Viacero metód s rovnakým názvom, ale s rôznymi podpismi (počet alebo typy parametrov) v jednej triede.
class Calculator { // Preťažená metóda Add (pre int) public int Add(int x, int y) { return x + y; } // Preťažená metóda Add (pre double) public double Add(double x, double y) { return x + y; } }
Polymorfizmus podporuje tvorbu flexibilnejšieho, rozšíriteľného a ľahko udržiavateľného kódu. Umožňuje písanie všeobecného kódu, ktorý môže pracovať s objektmi rôznych typov.