Sobes.tech
Junior

Por que em algumas interfaces não definem métodos?

sobes.tech IA

Resposta da IA

Este tipo de interfaces são chamadas interfaces marcador (marker interfaces). Elas não contêm métodos e servem para anotar classes, indicando ao compilador ou à JVM certas propriedades ou semânticas da classe.

Exemplos:

  • java.io.Serializable: Marca a classe como serializável.
  • java.lang.Cloneable: Indica que o objeto pode ser clonado.
  • java.util.RandomAccess: Otimiza o acesso aleatório aos elementos de uma lista.

Vantagens:

  • Semântica: Indicam explicitamente a intenção do desenvolvedor em relação à classe.
  • Polimorfismo: Permitem usar chamadas polimórficas trabalhando com um grupo de classes que implementam uma mesma interface marcador.
  • Anotação: Podem ser usadas para fornecer informações adicionais às ferramentas (por exemplo, frameworks, ORM).

Alternativas (dependendo do contexto):

  • Anotações (@interface).
  • Classes abstratas.

Interfaces marcador são preferidas quando se deseja marcar um atributo da classe sem adicionar comportamento.