Oii, Clara!
A interface é como um contrato que estabelece que as classes que a implementam devem possuir determinados métodos, mas sem definir como eles devem ser implementados.
No caso da interface Classificavel
que você mencionou, ela define que todas as classes que a implementam devem ter o método getClassificacao()
. Isso significa que tanto a classe Filme
quanto a classe Episodio
(ou qualquer outra que implemente Classificavel
) devem possuir este método, mas cada uma delas pode implementá-lo de uma maneira diferente.
Agora, por que usar uma interface e não um método comum na classe mãe? A resposta é que nem sempre as classes que compartilham um método em comum possuem uma relação de herança. No exemplo dado na aula, a classe Filme
e a classe Episodio
compartilham o método getClassificacao()
, mas não há uma relação de herança entre elas (ou seja, uma não é subclasse da outra). Nesse caso, a interface é uma maneira de garantir que ambas as classes tenham esse método.
Quando dizemos que a interface é como um contrato, queremos dizer que ela estabelece uma "obrigação" para as classes que a implementam. No exemplo da aula, ao implementar a interface Classificavel
, a classe Filme
está "assinando um contrato" que diz: "eu, classe Filme, me comprometo a ter um método chamado getClassificacao()
". Se a classe Filme
não implementar esse método, o compilador Java vai acusar um erro.
Espero ter ajudado e bons estudos!