Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Abstracte Klasse vs Interface | Sectie
Practice
Projects
Quizzes & Challenges
Quizzen
Challenges
/
Java Objectgeoriënteerde Programmeerfundamenten

bookAbstracte 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 class bij het declareren van een abstracte klasse en interface bij het declareren van een interface;
  • Overervingssleutelwoord: extends voor het overerven van een abstracte klasse, en implements voor het overerven van een interface;
  • Benamingen voor subklassen: Een subklasse van een abstract class wordt aangeduid als een subklasse of overervende klasse, terwijl een subklasse van een interface een klasse - implementatie wordt genoemd;
  • Aantal overervingen: Je kunt van slechts één abstracte klasse erven, terwijl je van meerdere interfaces kunt erven;
  • Een abstract class kan zowel geïmplementeerde als abstracte methoden bevatten. Vanaf Java 8 kunnen interfaces ook default-methoden hebben, wat later in deze sectie wordt besproken;
  • Methoden in een abstracte klasse kunnen elke toegangsmodifier hebben, terwijl in interfaces alleen de public toegangsmodifier is toegestaan.

Opmerking

We kunnen ook gelijktijdig erven van een abstracte klasse en een interface implementeren. Eerst gebruiken we het sleutelwoord extends, daarna implements. 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.

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 22

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Sectie 1. Hoofdstuk 22
some-alt