Oi, boa noite, tudo bem?
Quando você define como parâmetro de um método uma interface, todos objetos que implementam essa interface podem ser passados nesse parâmetro. Quando fazemos isso estamos usando o polimorfismo no Java.
Por exemplo:
public class FiltroRecomendacao {
private String recomendacao;
public void filtra(Classificavel classificavel) {
if (classificavel.getClassificacao() >= 4)
System.out.println("Está entre os preferidos do momento");
else if (classificavel.getClassificacao() >= 2)
System.out.println("Muito bem avaliado no momento");
else
System.out.println("Coloque na sua lista para assistir depois");
}
}
public interface Classificavel {
int getClassificacao();
}
FiltroRecomendacao filtro = new FiltroRecomendacao();
Filme meuFilme = new Filme("Poderoso chefão", 1980);
filtro.filtra(meuFilme);
Episodio ep = new Episodio();
ep.setNumero(1);
ep.setSerie(lost);
ep.setNome("Breaking Bad");
ep.setTotalDeVisualizacoes(300);
filtro.filtra(ep);
No caso acima, a classe Episodio e Filme implementa a interface Classificavel então elas podem ser passadas como parâmetro no método filtra() já que na definição desse método foi usado a interface Classificavel como parâmetro.
Espero ter ajudado! Bons estudos!