Abstracte Klasse vs Interface
Veeg om het menu te tonen
Welke te kiezen
Uit de voorgaande hoofdstukken heb je wellicht opgemerkt dat abstract classes en interfaces vrij vergelijkbaar zijn. Er zijn echter verschillen tussen beide. Om direct ter zake te komen: in de praktijk worden interfaces vaak verkozen boven abstracte klassen. Laten we begrijpen waarom dit het geval is.
Wat is het verschil
Om te beginnen moeten we de verschillen tussen een abstracte klasse en een interface begrijpen. Laten we de lijst doornemen:
- Syntaxis:
abstract classbij het declareren van een abstracte klasse eninterfacebij het declareren van een interface; - Overervingssleutelwoord:
extendsvoor het overerven van een abstracte klasse, enimplementsvoor het overerven van een interface; - Benamingen voor subklassen: Een subklasse van een
abstract classwordt aangeduid als een subklasse of overervende klasse, terwijl een subklasse van eeninterfaceeen klasse - implementatie wordt genoemd; - Aantal overervingen: Je kunt van slechts één abstracte klasse erven, terwijl je van meerdere interfaces kunt erven;
- Een
abstract classkan zowel geïmplementeerde als abstracte methoden bevatten. Vanaf Java 8 kunnen interfaces ookdefault-methoden hebben, wat later in deze sectie wordt besproken; - Methoden in een abstracte klasse kunnen elke toegangsmodifier hebben, terwijl in interfaces alleen de
publictoegangsmodifier is toegestaan.
Opmerking
We kunnen ook gelijktijdig erven van een abstracte klasse en een interface implementeren. Eerst gebruiken we het sleutelwoord
extends, daarnaimplements. De syntaxis ziet er als volgt uit:class ClassName extends AbstractClass implements Interface {}
Eenvoudig gezegd kun je een abstracte klasse zien als een klasse die bepaalde functionaliteit biedt en bepaalde regels afdwingt, maar sommige onderdelen aan zijn subklassen overlaat om te voltooien. Een interface daarentegen is als een checklist die een klasse moet afvinken, waarbij wordt gespecificeerd welke methoden het moet bevatten, zonder daadwerkelijke code te leveren.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.