Wat is polymorfisme in programmeren?
sobes.tech AI
Antwoord van AI
Polymorfisme is het vermogen van objecten van verschillende klassen om verschillend te reageren op dezelfde methode-aanroep. Dit wordt bereikt door gebruik te maken van erfelijkheid, abstracte klassen en interfaces. In C# manifesteert polymorfisme zich door het overschrijven (overriding) van methoden van de basisklasse in afgeleide klassen en door method overloading.
Voorbeelden van polymorfisme:
-
Methoden overschrijven (Runtime Polymorfisme): De afgeleide klasse biedt zijn eigen implementatie van een in de basisklasse gedeclareerde methode. Hiervoor wordt in de basisklasse het sleutelwoord
virtualgebruikt, en in de afgeleide klasseoverride.// Basisklasse class Shape { // Virtuele methode die overschreven kan worden public virtual void Draw() { // Standaard implementatie } } // Afgeleide klasse 1 class Circle : Shape { // Overschrijven van de Draw-methode public override void Draw() { // Implementatie voor cirkel } } // Afgeleide klasse 2 class Square : Shape { // Overschrijven van de Draw-methode public override void Draw() { // Implementatie voor vierkant } }In dit geval kan een lijst van
Shape-objecten worden gemaakt en deDraw-methode voor elk worden aangeroepen, en de specifieke implementatie voor elk figuurtype wordt uitgevoerd. -
Method overloading (Compile-time Polymorfisme): Meerdere methoden met dezelfde naam, maar met verschillende handtekeningen (aantal of types van parameters) in één klasse.
class Calculator { // Overbelaste methode Add (voor int) public int Add(int x, int y) { return x + y; } // Overbelaste methode Add (voor double) public double Add(double x, double y) { return x + y; } }
Polymorfisme bevordert het maken van flexibelere, uitbreidbare en onderhoudsvriendelijkere code. Het maakt het mogelijk om generieke code te schrijven die met objecten van verschillende types kan werken.