Hvad er en abstrakt metode?
I objektorienteret programmering bruges underprogrammer kaldet “metoder” til at udføre funktioner i et program. Disse metoder består af programmering af udsagn, der udfører en handling, indstiller inputparametre til at tilpasse handlinger og kan returnere eller udsende en værdi af en eller anden form for objekt eller klasse. Metoder er handlingerne, der udføres i et program fra en bestemt klasse eller inden for et objekt, og bruges til at få adgang til og manipulere data, der er gemt i et objekt. Der er mange forskellige metoder, og hver har en bestemt anvendelse. En bestemt type, der udføres fra en abstrakt superklasse og arvet af underklasser er kendt som en abstrakt metode.
Generelt udfører den abstrakte metode ringe eller ingen implementering inden for dens abstrakte superklasse. Koder indeholdt i denne type metode betragtes som dummy-koder og implementeres ikke selv. Dette betyder ikke, at den specifikke abstrakte metode i en bestemt abstrakt klasse ikke bliver brugt. I stedet fungerer den abstrakte metode som en model eller pladsholder for underklasser for at afslutte implementeringen af metoden.
Superklasser kan indeholde flere underklasser, og alle underklasser i en superklasse har visse lignende tilstande og opførsel. Abstrakte klasser er derfor en type virtuel klasse, der udviser virtuel arv. Dette betyder, at enhver underklasse, der stammer fra en superklasse, arver begrænsningerne i superklassen, hvorfra den er afledt. Derfor er metoder i underklasser afledt af abstrakte metoder i superklasser. Ved programmering og anvendelse af abstrakte metoder skal programmereren erklære klassen abstrakt snarere end virtuel.
For eksempel indeholder en superklasse af "Grafiske objekter" underklasserne "Cirkel", "Firkant" osv. Som sådan har alle cirkler og firkanter de samme tilstande - orientering, placering, udfyldningsfarve, linjefarve - og opførsel - flyt til , ændre størrelse, rotere, tegne - som "Grafiske objekter." Alle underklasser i denne superklasse har de samme kvaliteter, men de implementeres på forskellige måder. Superklassens abstrakte metode giver grundlaget uden implementering, og underklasserne udfører den faktiske implementering ved hjælp af de samme metoder. Selvom hver underklasse bruger den samme metode som den abstrakte klasse, definerer de entydigt den måde, hvorpå metoden skal udføres.
Brug af en abstrakt metode giver mulighed for generalisering på øverste niveau eller superklasse og specifikation på de lavere niveauer eller underklasser. Dette hierarki minimerer mængden af metodeprogrammering til hver specifik underklasse. Brug af disse metoder tillader også identitet i underklasser, hvilket betyder, at hvis en metode implementeres igen og igen, er resultatet det samme hver gang.