Mi a polimorfizmus a programozásban?
sobes.tech MI
Válasz az MI-től
A polimorfizmus az objektumok azon képessége, hogy különböző osztályok példányai ugyanarra a metódushívásra különböző módon reagáljanak. Ez öröklés, absztrakt osztályok és interfészek használatával érhető el. C#-ban a polimorfizmus a bázisosztály metódusainak felülírásán (overriding) és a metódusok túlterhelésén (overloading) keresztül nyilvánul meg.
Polimorfizmus példák:
-
Metódusok felülírása (Futásidőben Polimorfizmus): A származtatott osztály saját implementációt ad egy a bázisosztályban deklarált metódushoz. Ehhez a bázisosztályban a
virtualkulcsszót használjuk, a származtatott osztályban pedig azoverride-ot.// Bázisosztály class Shape { // Virtuális metódus, amit felül lehet írni public virtual void Draw() { // Alapértelmezett megvalósítás } } // Származtatott osztály 1 class Circle : Shape { // Draw metódus felülírása public override void Draw() { // Körre vonatkozó megvalósítás } } // Származtatott osztály 2 class Square : Shape { // Draw metódus felülírása public override void Draw() { // Négyzetre vonatkozó megvalósítás } }Ebben az esetben létrehozhatunk egy
Shapeobjektumokat tartalmazó listát, és meghívhatjuk aDrawmetódust minden elemre, és a konkrét megvalósítás lesz végrehajtva minden alak típusára. -
Metódusok túlterhelése (Fordítási idő Polimorfizmus): Több metódus ugyanazzal a névvel, de különböző szignatúrával (paraméterek számával vagy típusával) ugyanabban az osztályban.
class Calculator { // Túlterhelt Add metódus (int) public int Add(int x, int y) { return x + y; } // Túlterhelt Add metódus (double) public double Add(double x, double y) { return x + y; } }
A polimorfizmus elősegíti rugalmasabb, bővíthetőbb és könnyebben karbantartható kód létrehozását. Lehetővé teszi általános kód írását, amely különböző típusú objektumokkal működhet.