Sobes.tech
Junior

Waarom worden in sommige interfaces geen methoden gedefinieerd?

sobes.tech AI

Antwoord van AI

Marker-interfaces (markeerinterfaces) definiëren geen methoden. Ze worden gebruikt om een klasse te markeren, wat aangeeft dat deze een bepaalde eigenschap of mogelijkheid bezit.

Voorbeelden van marker-interfaces:

  • java.io.Serializable: Markeert een klasse waarvan de objecten geserialiseerd kunnen worden.
  • java.lang.Cloneable: Markeert een klasse waarvan de objecten gekloond kunnen worden (ondersteunt de methode clone()).
  • java.util.RandomAccess: Markeert lijsten die snelle (constante tijd) willekeurige toegang tot hun elementen ondersteunen.

Het gebruik van marker-interfaces maakt het mogelijk:

  • Klassen te identificeren: Het type van een object controleren op lidmaatschap van een bepaalde groep met behulp van de instanceof operator.
    // controleren of een object serialiseerbaar is
    if (object instanceof Serializable) {
        // serialisatie uitvoeren
    }
    
  • Gedrag te wijzigen: API's kunnen hun gedrag aanpassen afhankelijk van of de klasse een marker-klasse implementeert. Bijvoorbeeld, als een lijst RandomAccess implementeert, kunnen operaties op die lijst geoptimaliseerd worden.
  • Toegang te beperken: Sommige API's kunnen vereisen dat de objecten die ze ontvangen een bepaalde marker-klasse implementeren.
  • Annotaties: In modernere benaderingen worden veel gebruiksscenario's van marker-interfaces gerealiseerd met behulp van annotaties. Marker-interfaces worden echter nog steeds gebruikt in de Java-standaardbibliotheek en in legacy-code.