Vad är en abstrakt metod?
I objektorienterad programmering används subroutiner som kallas “metoder” för att utföra funktioner i ett program. Dessa metoder består av programmeringssatser som utför en åtgärd, ställer in ingångsparametrar för att anpassa handlingar och kan returnera eller mata ut ett värde för någon form av objekt eller klass. Metoder är de åtgärder som utförs i ett program från en viss klass eller inom ett objekt, och används för att komma åt och manipulera data lagrade i ett objekt. Det finns många olika metoder och var och en har en särskild användning. En specifik typ som utförs från en abstrakt superklass och ärvs av underklasser kallas en abstrakt metod.
I allmänhet utför den abstrakta metoden liten eller ingen implementering inom sin abstrakta superklass. Koder som ingår i denna typ av metod betraktas som dummy-koder och implementeras inte själva. Detta betyder inte att den specifika abstrakta metoden i en viss abstrakt klass inte används. Snarare fungerar den abstrakta metoden som en modell eller en platshållare för underklasser för att slutföra implementeringen av metoden.
Superklasser kan innehålla flera underklasser, och alla underklasser i en superklass har vissa liknande tillstånd och beteenden. Abstrakta klasser är därför en typ av virtuell klass som uppvisar virtuell arv. Detta innebär att alla underklasser som härrör från en superklass ärver begränsningarna för den superklass som den härrör från. Därför härrör metoder i underklasser från abstrakta metoder för superklasser. Vid programmering och användning av abstrakta metoder måste programmeraren förklara klassen abstrakt snarare än virtuell.
Till exempel innehåller en superklass "Grafiska objekt" underklasserna "Cirkel", "Fyrkant" osv. Som sådan har alla cirklar och rutor samma tillstånd - orientering, position, fyllningsfärg, linjefärg - och beteenden - flytta till , ändra storlek, rotera, rita - som "Grafiska objekt." Alla underklasser i denna superklass har samma egenskaper, men de implementeras på olika sätt. Superklassens abstrakta metod ger grunden utan implementering, och underklasserna utför själva implementeringen med samma metoder. Även om varje underklass använder samma metod som den abstrakta klassen, definierar de unikt sättet på vilket metoden kommer att genomföras.
Användning av en abstrakt metod möjliggör generalisering på toppnivå eller superklass och specifikation på lägre nivåer eller underklasser. Denna hierarki minimerar mängden metodprogrammering till varje specifik underklass. Genom att använda dessa metoder möjliggörs även underklasser, vilket betyder att om en metod implementeras om och om igen, är resultatet detsamma varje gång.