Hovedforskel: Der er to hovedtyper af klasser: Abstrakt Klasse og Betonklasse. Hovedforskellen mellem de to stammer fra implementeringsniveauet af deres metodets funktionaliteter. Betonklasser er regelmæssige klasser, hvor alle metoder er fuldstændigt implementeret. En abstrakt klasse er præcis, hvad navnet antyder. Det er her, hvor funktionerne ikke er defineret, dvs. de er abstrakte.
Der er to hovedtyper af klasser: Abstrakt Klasse og Betonklasse. Hovedforskellen mellem de to stammer fra implementeringsniveauet af deres metodets funktionaliteter. Betonklasser er regelmæssige klasser, hvor alle metoder er fuldstændigt implementeret. En abstrakt klasse er præcis, hvad navnet antyder. Det er her, hvor funktionerne ikke er defineret, dvs. de er abstrakte. Det er grundklassen. Når en abstrakt klasse er defineret, ophører den at være abstrakt og bliver en konkret klasse. En konkret klasse er, hvor implementeringen af medlemsfunktionerne er tilvejebragt. En konkret klasse er afledt fra basisklassen, dvs. abstrakt klasse.
En nemmere måde at tænke på ville være at overveje et eksempel. Tænk på sport, det er et objekt, men en der ikke er defineret. Teknisk set er der ikke noget som sport. Den eksisterer kun som en kategorisering for andre objekter. Disse objekter, såsom fodbold, baseball, basketball, hockey, osv. Er definerede objekter, der kan kategoriseres og implementeres under sport. Derfor er sport den abstrakte klasse, mens fodbold, baseball, basketball og hockey er konkrete klasser.
Sammenligning mellem abstrakt klasse og betonklasse:
Abstrakt klasse | Beton klasse | |
Type | Base klasse | Standard klasse |
Metoder | Kan indeholde delvis implementerede metoder | Alle metoder er fuldt implementeret |
Funktioner | Nogle eller alle deklarerede funktioner er rent virtuelle | Ingen rent virtuelle funktioner |
instantiering | Kan ikke oprettes | Kan blive instantiated |
Image Courtesy: tutorials.jenkov.com, stackoverflow.com