Sobes.tech
Junior

Pourquoi certains interfaces ne définissent-ils pas de méthodes?

sobes.tech IA

Réponse de l'IA

Ces interfaces sont appelées interfaces marqueur (marker interfaces). Elles ne contiennent pas de méthodes et servent à annoter des classes, indiquant au compilateur ou à la JVM certaines propriétés ou sémantiques de la classe.

Exemples :

  • java.io.Serializable : Marque une classe comme sérialisable.
  • java.lang.Cloneable : Indique que l'objet peut être cloné.
  • java.util.RandomAccess : Optimise l'accès aléatoire aux éléments d'une liste.

Avantages :

  • Sémantique : Indiquent explicitement l'intention du développeur concernant la classe.
  • Polymorphisme : Permettent d'utiliser des appels polymorphes en travaillant avec un groupe de classes implémentant une même interface marqueur.
  • Annotation : Peuvent être utilisées pour fournir des informations supplémentaires aux outils (par exemple, frameworks, ORM).

Alternatives (en fonction du contexte) :

  • Annotations (@interface).
  • Classes abstraites.

Les interfaces marqueur sont préférées lorsque vous souhaitez marquer un attribut de la classe sans ajouter de comportement.