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.