1
resposta

[Dúvida] Interface?

Pelo que entendi a interface e uma forma de implementar metodos com a mesma regra para demais classes

porem com conceitos diferentes?

1 resposta

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!