Co je to polymorfismus v programování?
sobes.tech AI
Odpověď od AI
Polymorfismus je schopnost objektů různých tříd reagovat odlišně na stejný volání metody. Toho se dosahuje pomocí dědičnosti, abstraktních tříd a rozhraní. V C# se polymorfismus projevuje přepsáním (overriding) metod základní třídy v odvozených třídách a přetížením (overloading) metod.
Příklady polymorfismu:
-
Přepsání metod (Polymorfismus za běhu): Odvozená třída poskytne vlastní implementaci metody deklarované v základní třídě. K tomu se v základní třídě používá klíčové slovo
virtual, v odvozenéoverride.// Základní třída class Shape { // Virtuální metoda, kterou lze přepsat public virtual void Draw() { // Výchozí implementace } } // Odvozená třída 1 class Circle : Shape { // Přepsání metody Draw public override void Draw() { // Implementace pro kruh } } // Odvozená třída 2 class Square : Shape { // Přepsání metody Draw public override void Draw() { // Implementace pro čtverec } }V tomto případě lze vytvořit seznam objektů
Shapea volat metoduDrawpro každý z nich, a bude volána konkrétní implementace pro každý typ tvaru. -
Přetížení metod (Polymorfismus za kompilace): Více metod se stejným názvem, ale s různými podpisy (počet nebo typy parametrů) ve stejné třídě.
class Calculator { // Přetížená metoda Add (pro int) public int Add(int x, int y) { return x + y; } // Přetížená metoda Add (pro double) public double Add(double x, double y) { return x + y; } }
Polymorfismus podporuje tvorbu flexibilnějšího, rozšiřitelného a snadno udržovatelného kódu. Umožňuje psát obecný kód, který může pracovat s objekty různých typů.