Hva er en abstrakt klasse?
I objektorientert programmering gir en abstrakt klasse en baseklasse som kan brukes til å gi andre klasser delvis implementering og grensesnitt. De er ufullstendige av seg selv og brukes i arvesituasjoner i mange programmeringsspråk som Java, C ++ og C #. Bruken av dem som en baseklasse betyr at de ofte omtales som en abstrakt grunnklasse (ABC).
En integrert del av objektorientert programmering, abstraksjon av data fjerner de unødvendige detaljene i et objekt. I hovedsak koker det objektet ned til de viktigste identifiserende egenskapene. Disse grunnleggende egenskapene gir en blåkopi som kan brukes til å lage andre objekter med de samme egenskapene, bare avvikende i detaljene.
Denne planen er definert som en klasse. Klasser brukes til å innkapsle koden, noe som gjør det enklere for programmereren, fordi han kan referere til spesifikke vanlige rutiner i stedet for å skrive rutinene om og om igjen. Programmerere lager barnobjekter fra klasser, og disse objektene arver funksjonene og metodene i foreldreklassen.
Formålet med en abstrakt klasse er å være rammen som andre klasser er bygget på. Objekter kan ikke skapes direkte fra en abstrakt klasse, bare fra underklasser som tilhører den abstrakte klassen. For at et objekt skal arve fra en abstrakt klasse, må det opprettes en underklasse. Gjenstander av en opprettet underklasse av en abstrakt klasse arver egenskapene til den abstrakte klassen.
Hver klasse modellerer et konsept, og abstrakte klasser har en tendens til å modellere mer abstrakte begreper ved bruk av abstrakte metoder. Abstrakte metoder er subroutiner i en abstrakt klasse som ikke inneholder noen implementering. Disse subroutinene brukes som plassholdere som skal overskrives av en underklasse eller et objekt designet basert på klassen som inneholder selve den abstrakte metoden.
Det er forskjellige metoder for å skape en abstrakt klasse. I C ++ opprettes for eksempel en abstrakt klasse ved å utvikle en klasse med minst en abstrakt metode eller ren virtuell funksjon. Java bruker et nøkkelord "abstrakt" for å betegne en abstrakt klasse. De er imidlertid ikke definert i programmeringsspråk som ikke støtter ideen om arv.
Arv er prosessen med å lage nye objekter fra klasser der de nye objektene kan bruke funksjonene og metodene som er definert i sine foreldreklasser uten behov for å endre programmet. Dette er grunnen til at en abstrakt klasse er nyttig. Barneklasser og barnegjenstander fra disse underklassene arver egenskaper fra foreldrenes abstrakte klasse. Abstrakte klasser regnes som superklasser og er øverst i klassestrukturhierarkiet, så de har ikke noe poeng i et språk som ikke støtter arv.