1
resposta

Duvida sobre interface

Assistindo essa aula me ocorreu que não entendi muito bem o uso da interface. Quando devo usar uma interface ao invés de criar uma classe mae?

1 resposta

Oi João, tudo bem?

Quando falamos sobre interfaces, estamos falando sobre contratos que uma classe pode assinar. Uma interface define um conjunto de métodos que uma classe deve implementar. Isso é útil quando queremos ter um comportamento comum entre diferentes classes, mas sem a necessidade de criar uma hierarquia de herança.

No contexto que você mencionou, o uso de interfaces é importante para a ordenação de uma lista. No exemplo dado, temos uma lista de títulos e queremos ordená-la em ordem alfabética. Para isso, utilizamos o método Collections.sort(), que requer que os objetos da lista sejam comparáveis entre si.

A interface Comparable é uma forma de definir esse comportamento de comparação entre objetos. Ela possui um único método chamado compareTo(), que deve ser implementado pela classe que assina o contrato da interface. Esse método é responsável por definir o critério de comparação entre dois objetos.

No caso do exemplo, a classe Titulo implementa a interface Comparable<Titulo>. Isso significa que a classe Titulo deve implementar o método compareTo() para que a ordenação seja possível. No método compareTo(), é feita a comparação entre os nomes dos títulos, utilizando o método compareTo() da classe String.

Dessa forma, ao chamar o método Collections.sort() passando a lista de títulos, a ordenação será realizada com base no critério definido pela implementação do método compareTo() na classe Titulo.

Um abraço e bons estudos.