Sobes.tech
Junior

¿Por qué en algunas interfaces no se definen métodos?

sobes.tech AI

Respuesta de la IA

Las interfaces de marcador (interfaces de marcador) no definen métodos. Sirven para marcar una clase, indicando que posee una característica o capacidad específica.

Ejemplos de interfaces de marcador:

  • java.io.Serializable: Marca una clase cuyos objetos pueden ser serializados.
  • java.lang.Cloneable: Marca una clase cuyos objetos pueden ser clonados (soportan el método clone()).
  • java.util.RandomAccess: Marca listas que soportan acceso aleatorio rápido (tiempo constante) a sus elementos.

El uso de interfaces de marcador permite:

  • Identificar clases: Verificar el tipo de un objeto para determinar si pertenece a un grupo específico usando el operador instanceof.
    // verificar si un objeto es serializable
    if (object instanceof Serializable) {
        // realizar serialización
    }
    
  • Cambiar comportamiento: Las API pueden modificar su comportamiento dependiendo de si la clase implementa una interfaz de marcador. Por ejemplo, si una lista implementa RandomAccess, las operaciones sobre ella pueden ser optimizadas.
  • Restringir acceso: Algunas API pueden requerir que los objetos que reciben implementen una interfaz de marcador específica.
  • Anotaciones: En enfoques más modernos, muchos escenarios de uso de interfaces de marcador se implementan mediante anotaciones. Sin embargo, las interfaces de marcador todavía se usan en la biblioteca estándar de Java y en código legado.