Junior
¿Por qué en algunas interfaces no se definen métodos?
sobes.tech AI
Respuesta de la IA
Este tipo de interfaces se llaman interfaces marcador (marker interfaces). No contienen métodos y sirven para anotar clases, indicando al compilador o a la JVM ciertas propiedades o semánticas de la clase.
Ejemplos:
java.io.Serializable: Marca la clase como serializable.java.lang.Cloneable: Indica que la clase puede ser clonada.java.util.RandomAccess: Optimiza el acceso aleatorio a los elementos de una lista.
Ventajas:
- Semántica: Indican explícitamente la intención del desarrollador respecto a la clase.
- Polimorfismo: Permiten usar llamadas polimórficas trabajando con un grupo de clases que implementan una misma interfaz marcador.
- Anotación: Pueden usarse para proporcionar información adicional a herramientas (por ejemplo, frameworks, ORM).
Alternativas (dependiendo del contexto):
- Anotaciones (
@interface). - Clases abstractas.
Las interfaces marcador son preferidas cuando se necesita marcar un atributo de la clase sin añadir comportamiento.