Sobes.tech
Junior — Middle

Wat zijn de verschillen tussen een abstracte klasse en een interface in objectgeoriënteerd programmeren?

sobes.tech AI

Antwoord van AI

Een abstracte klasse en een interface zijn verschillende mechanismen om contracten en gedrag te beschrijven in objectgeoriënteerd programmeren, maar met belangrijke verschillen:

  • Abstracte klasse kan zowel abstracte (zonder implementatie) als concrete methoden met implementatie bevatten. Het kan toestand (velden) hebben. Klassen erven van de abstracte klasse en kunnen methoden overschrijven.

  • Interface beschrijft alleen een set methoden zonder implementatie en bevat geen toestand. De klasse die de interface implementeert, moet al zijn methoden implementeren.

Voorbeeld van verschillen:

  • Een abstracte klasse is geschikt wanneer je een basisimplementatie en gemeenschappelijke toestand voor afstammelingen wilt definiëren.
  • Een interface wordt gebruikt om mogelijkheden te beschrijven die door verschillende klassen kunnen worden geïmplementeerd zonder erfrelatie.

Bijvoorbeeld, de interface Flyable kan de methode fly() beschrijven, en de abstracte klasse Bird kan het veld wingSpan bevatten en de methode sing() met implementatie.