Voorbeeld van polymorfisme, een van de fundamentele eigenschappen van Object Oriented Programming.
Polymorfisme betekent letterlijk "vele vormen" en stelt objecten in staat om verschillende gedragingen te vertonen afhankelijk van hun werkelijke type, terwijl ze allemaal via dezelfde interface benaderd kunnen worden.
Dit project demonstreert polymorfisme door gebruik te maken van een abstracte basisklasse Vorm en twee concrete implementaties: Cirkel en Vierkant.
- Vorm (abstracte klasse): Definieert de basisstructuur met een
Nameeigenschap en een abstracte methodeBerekenOppervlakte() - Cirkel: Implementeert
Vormen berekent de oppervlakte met π × straal² - Vierkant: Implementeert
Vormen berekent de oppervlakte met rib²
In Program.cs wordt getoond hoe één variabele van type Vorm verschillende concrete objecten kan bevatten:
// Dezelfde variabele kan verschillende vormen aannemen
Vorm deVorm = new Cirkel("cirkel", 100); // deVorm gedraagt zich als een Cirkel
deVorm = new Vierkant("vierkant", 100); // Nu gedraagt deVorm zich als een VierkantOndanks dat beide objecten via dezelfde Vorm referentie benaderd worden, wordt de juiste BerekenOppervlakte() methode aangeroepen dankzij polymorfisme.
Het volgende class diagram toont de relaties tussen de klassen:
classDiagram
class Vorm {
<<abstract>>
+string Name
+BerekenOppervlakte()* double
}
class Cirkel {
+double Straal
+BerekenOppervlakte() double
+Cirkel(string name, double straal)
}
class Vierkant {
+double Rib
+BerekenOppervlakte() double
+Vierkant(string name, double rib)
}
Vorm <|-- Cirkel
Vorm <|-- Vierkant
- Compileer het project met
dotnet build - Voer het programma uit met
dotnet run - Het programma toont de berekende oppervlaktes van zowel de cirkel als het vierkant