Wat is een abstracte methode?
In objectgeoriënteerd programmeren worden subroutines die 'methoden' worden genoemd, gebruikt om functies in een programma uit te voeren. Deze methoden bestaan uit het programmeren van instructies die een actie uitvoeren, invoerparameters instellen om acties aan te passen en een waarde van een bepaald object of klasse kunnen retourneren of uitvoeren. Methoden zijn de acties die worden uitgevoerd in een programma van een bepaalde klasse of binnen een object en worden gebruikt voor toegang tot en manipulatie van gegevens die zijn opgeslagen in een object. Er zijn veel verschillende methoden en elk heeft een bepaald gebruik. Een specifiek type dat wordt uitgevoerd vanuit een abstracte superklasse en wordt overgeërfd door subklassen staat bekend als een abstracte methode.
Over het algemeen voert de abstracte methode weinig of geen implementatie uit binnen zijn abstracte superklasse. Codes in dit soort methoden worden beschouwd als dummy-codes en worden niet zelf geïmplementeerd. Dit betekent niet dat de specifieke abstracte methode in een bepaalde abstracte klasse niet wordt gebruikt. De abstracte methode fungeert eerder als een model of tijdelijke aanduiding voor subklassen om de implementatie van de methode te voltooien.
Superklassen kunnen meerdere subklassen bevatten en alle subklassen van een superklasse hebben bepaalde vergelijkbare toestanden en gedragingen. Abstracte klassen zijn daarom een soort virtuele klasse die virtuele overerving vertoont. Dit betekent dat elke subklasse die is afgeleid van een superklasse de beperkingen ervaart van de superklasse waarvan deze is afgeleid. Daarom zijn methoden in subklassen afgeleid van abstracte methoden van superklassen. Bij het programmeren en gebruiken van abstracte methoden moet de programmeur de klasse abstract in plaats van virtueel verklaren.
Een superklasse van "Grafische objecten" bevat bijvoorbeeld de subklassen "Cirkel", "Vierkant", enz. Als zodanig hebben alle cirkels en vierkanten dezelfde status - oriëntatie, positie, vulkleur, lijnkleur - en gedragingen - moveTo , formaat wijzigen, roteren, tekenen - als 'Grafische objecten'. Alle subklassen in deze superklasse hebben dezelfde kwaliteiten, maar ze zijn op verschillende manieren geïmplementeerd. De abstracte methode van de superklasse biedt het grondwerk zonder implementatie, en de subklassen voeren de daadwerkelijke implementatie uit met dezelfde methoden. Hoewel elke subklasse dezelfde methode gebruikt als de abstracte klasse, definiëren ze op unieke wijze de manier waarop de methode wordt uitgevoerd.
Het gebruik van een abstracte methode maakt generalisatie op het hoogste niveau, of superklasse, en specificatie op de lagere niveaus of subklassen mogelijk. Deze hiërarchie minimaliseert de hoeveelheid methodeprogrammering voor elke specifieke subklasse. Het gebruik van deze methoden zorgt ook voor het vermogen van subklassen, wat betekent dat als een methode steeds opnieuw wordt geïmplementeerd, het resultaat elke keer hetzelfde is.