Sobes.tech
Junior

Waarom worden in sommige interfaces geen methoden gedefinieerd?

sobes.tech AI

Antwoord van AI

Dit soort interfaces worden marker interfaces genoemd. Ze bevatten geen methoden en dienen om klassen te annoteren, waarbij ze de compiler of JVM bepaalde eigenschappen of semantiek van de klasse aangeven.

Voorbeelden:

  • java.io.Serializable: Markeert een klasse als serialiseerbaar.
  • java.lang.Cloneable: Geeft aan dat het object gekloond kan worden.
  • java.util.RandomAccess: Optimaliseert willekeurige toegang tot lijstitems.

Voordelen:

  • Semantiek: Duidelijk aangeven wat de intentie van de ontwikkelaar is met betrekking tot de klasse.
  • Polymorfisme: Stellen het gebruik van polymorfe aanroepen mogelijk, door te werken met een groep klassen die eenzelfde marker interface implementeren.
  • Annotatie: Kunnen worden gebruikt om extra informatie te verstrekken aan tools (bijvoorbeeld frameworks, ORM).

Alternatieven (afhankelijk van de context):

  • Annotaties (@interface).
  • Abstracte klassen.

Marker interfaces worden aanbevolen wanneer je een attribuut van de klasse wilt aangeven zonder gedrag toe te voegen.