Nøkkelforskjell: Det er to hovedtyper av klasser: Abstrakt klasse og betongklasse. Hovedforskjellen mellom de to oppstår fra implementeringsnivået til metodens funksjonalitet. Betongklasser er vanlige klasser, der alle metodene er fullstendig implementert. En abstrakt klasse er akkurat hva navnet tilsier. Det er der funksjonene ikke er definert, dvs. de er abstrakte.
Det er to hovedtyper av klasser: Abstrakt klasse og betongklasse. Hovedforskjellen mellom de to oppstår fra implementeringsnivået til metodens funksjonalitet. Betongklasser er vanlige klasser, der alle metodene er fullstendig implementert. En abstrakt klasse er akkurat hva navnet tilsier. Det er der funksjonene ikke er definert, dvs. de er abstrakte. Det er grunnklassen. Når en abstrakt klasse er definert, slutter den å være abstrakt og blir en konkret klasse. En konkret klasse er der implementeringene for medlemsfunksjonene er gitt. En konkret klasse er avledet fra grunnklassen, det vil si abstrakt klasse.
En enklere måte å tenke på, ville være å vurdere et eksempel. Tenk på sport, det er et objekt, men en som ikke er definert. Teknisk er det ikke noe som sport. Den eksisterer bare som en kategorisering for andre objekter. Disse objektene, som fotball, baseball, basketball, hockey, etc. er definerte objekter som kan kategoriseres og implementeres under sport. Derfor er sport den abstrakte klassen, mens fotball, baseball, basketball og hockey er konkrete klasser.
Sammenligning mellom abstrakt klasse og betong klasse:
Abstrakt klasse | Betongklasse | |
Type | Baseklasse | Standard klasse |
metoder | Kan inneholde delvis implementerte metoder | Alle metoder er fullstendig implementert |
funksjoner | Noen eller alle deklarerte funksjoner er rent virtuelle | Ingen rent virtuelle funksjoner |
oppretting | Kan ikke bli instantiated | Kan bli instantiated |
Image Courtesy: tutorials.jenkov.com, stackoverflow.com