Sobes.tech
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.