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.