Belangrijkste verschil: er zijn twee hoofdtypen klassen: abstracte klasse en betonklasse. Het belangrijkste verschil tussen de twee komt voort uit het implementatieniveau van hun methode-functionaliteiten. Betonklassen zijn reguliere klassen, waarbij alle methoden volledig zijn geïmplementeerd. Een abstracte klasse is precies wat de naam doet vermoeden. Het is waar de functies niet gedefinieerd zijn, dat wil zeggen dat ze abstract zijn.
Er zijn twee hoofdtypen klassen: abstracte klasse en betonklasse. Het belangrijkste verschil tussen de twee komt voort uit het implementatieniveau van hun methode-functionaliteiten. Betonklassen zijn reguliere klassen, waarbij alle methoden volledig zijn geïmplementeerd. Een abstracte klasse is precies wat de naam doet vermoeden. Het is waar de functies niet gedefinieerd zijn, dat wil zeggen dat ze abstract zijn. Het is de basisklasse. Zodra een abstracte klasse is gedefinieerd, is deze niet langer abstract en wordt het een concrete klasse. Een concrete klasse is waar de implementaties voor de ledenfuncties worden aangeboden. Een concrete klasse is afgeleid van de basisklasse, dwz abstracte klasse.
Een eenvoudigere manier om erover na te denken, zou een voorbeeld zijn. Denk aan sport, het is een object, maar een dat niet is, is niet gedefinieerd. Technisch gezien bestaat sport niet. Het bestaat alleen als een categorisatie voor andere objecten. Deze objecten, zoals voetbal, honkbal, basketbal, hockey, enz. Zijn gedefinieerde objecten die onder sport kunnen worden ingedeeld en geïmplementeerd. Daarom is sport de abstracte klasse, terwijl voetbal, honkbal, basketbal en hockey concrete lessen zijn.
Vergelijking tussen abstracte klasse en betonklasse:
Abstracte klasse | Betonklasse | |
Type | Basisklasse | Standaardklasse |
methoden | Kan gedeeltelijk geïmplementeerde methoden bevatten | Alle methoden zijn volledig geïmplementeerd |
functies | Sommige of alle gedeclareerde functies zijn puur virtueel | Geen puur virtuele functies |
instantiëring | Kan niet worden geïnstantieerd | Kan worden geïnstantieerd |
Afbeelding met dank aan: tutorials.jenkov.com, stackoverflow.com