Pelo que entendi a interface e uma forma de implementar metodos com a mesma regra para demais classes
porem com conceitos diferentes?
Pelo que entendi a interface e uma forma de implementar metodos com a mesma regra para demais classes
porem com conceitos diferentes?
Olá, Levi!
Uma interface em Java é como um contrato que define métodos que uma classe deve implementar, mas não fornece a implementação desses métodos. Ou seja, ela diz "estas são as ações que você deve saber fazer", mas não diz como fazer essas ações. Isso permite que diferentes classes implementem esses métodos de maneiras variadas, mas ainda sigam as mesmas regras básicas.
Por exemplo, imagine que você tem uma interface Classificavel
que define um método getClassificacao()
:
public interface Classificavel {
int getClassificacao();
}
Qualquer classe que implementar essa interface terá que fornecer uma implementação para o método getClassificacao()
. Veja como isso poderia ser feito em uma classe Filme
:
public class Filme extends Titulo implements Classificavel {
private int avaliacao;
// Outros métodos e atributos
@Override
public int getClassificacao() {
return this.avaliacao / 2; // Exemplo de implementação
}
}
E em uma classe Episodio
:
public class Episodio implements Classificavel {
private int numeroDeEstrelas;
// Outros métodos e atributos
@Override
public int getClassificacao() {
return this.numeroDeEstrelas; // Outra forma de implementação
}
}
Dessa forma, tanto Filme
quanto Episodio
são "classificáveis" e cada um pode ter sua própria maneira de calcular a classificação.
A vantagem das interfaces é que elas permitem que você use polimorfismo. Por exemplo, você pode ter um método que aceita qualquer objeto que seja Classificavel
, sem se importar se é um Filme
, um Episodio
ou qualquer outra coisa:
public void exibirClassificacao(Classificavel item) {
System.out.println("Classificação: " + item.getClassificacao());
}
Espero ter ajudado e bons estudos!