Junior
Pourquoi certains interfaces ne définissent-ils pas de méthodes?
sobes.tech IA
Réponse de l'IA
Les interfaces de marque (interfaces de marque) ne définissent pas de méthodes. Elles servent à marquer une classe, indiquant qu'elle possède une caractéristique ou une capacité spécifique.
Exemples d'interfaces de marque :
java.io.Serializable: Marque une classe dont les objets peuvent être sérialisés.java.lang.Cloneable: Marque une classe dont les objets peuvent être clonés (supportent la méthodeclone()).java.util.RandomAccess: Marque les listes qui supportent un accès rapide (temps constant) à leurs éléments.
L'utilisation d'interfaces de marque permet :
- Identifier les classes : Vérifier le type d'un objet pour déterminer s'il appartient à un groupe spécifique en utilisant l'opérateur
instanceof.// vérifier si un objet est sérialisable if (object instanceof Serializable) { // effectuer la sérialisation } - Modifier le comportement : Les API peuvent changer leur comportement en fonction de si la classe implémente une interface de marque. Par exemple, si une liste implémente
RandomAccess, les opérations sur celle-ci peuvent être optimisées. - Restreindre l'accès : Certaines API peuvent exiger que les objets qu'elles reçoivent implémentent une interface de marque spécifique.
- Annotations : Dans des approches plus modernes, de nombreux scénarios d'utilisation d'interfaces de marque sont réalisés à l'aide d'annotations. Cependant, les interfaces de marque sont toujours utilisées dans la bibliothèque standard de Java et dans le code legacy.