Sobes.tech
Junior

Wat is het verschil tussen abstracte klassen en interfaces?

sobes.tech AI

Antwoord van AI

Abstracte klasse:

  • Kan abstracte (zonder implementatie) en concrete (met implementatie) methoden bevatten.
  • Kan velden (instantvariabelen) bevatten.
  • Kan constructors hebben.
  • Staat enkelvoudige erfelijkheid toe (een klasse kan erven van een abstracte klasse).
  • Wordt gebruikt om de basisstructuur en het algemene gedrag voor gerelateerde klassen te definiëren.

Interface:

  • Kan alleen abstracte methoden bevatten (sommige talen, zoals Java vanaf versie 8, staan default- en static-methoden met implementatie toe).
  • Kan geen instantievormen bevatten (alleen constanten).
  • Kan geen constructors hebben.
  • Staat meervoudige implementatie toe (een klasse kan meerdere interfaces implementeren).
  • Wordt gebruikt om een contract te definiëren dat klassen moeten implementeren.