Interface em Java com exemplo
Em que consiste a interface Java?
An Interface em Java linguagem de programação é definida como um tipo abstrato usado para especificar o comportamento de uma classe. UM Java interface contém constantes estáticas e métodos abstratos. Uma classe pode implementar múltiplas interfaces. Em Java, as interfaces são declaradas usando a palavra-chave interface. Todos os métodos na interface são implicitamente públicos e abstratos.
Sintaxe para declaração de interface
Para usar uma interface em sua classe, acrescente a palavra-chave “implements” após o nome da classe, seguida do nome da interface.
interface { //methods }
Exemplo de implementação de interface
Agora, vamos entender a interface em Java com exemplo:
class Dog implements Pet
interface RidableAnimal extends Animal, Vehicle
Clique aqui se o vídeo não estiver acessível
Por que uma interface é necessária?
Para entender o uso da interface em Java melhor, vamos ver um Java exemplo de interface. A classe “Media Player” possui duas subclasses: CD player e DVD player. Cada um tendo sua implementação de interface exclusiva em Java método para tocar música.
Outra classe “Combo drive” herda CD e DVD (veja imagem abaixo). Qual método de jogo ele deve herdar? Isso pode causar sérios problemas de design. E, portanto, Java não permite múltiplos herança.
Agora vamos dar outro exemplo de Cachorro.
Suponha que você tenha um requisito onde a classe “cachorro” herda as classes “animal” e “Pet” (veja a imagem abaixo). Mas você não pode estender duas classes em Java. Então, o que você faria? A solução é Interface.
O livro de regras para interface diz:
- A Java implementar interface é 100% classe abstrata e tem apenas métodos abstratos.
- A classe pode implementar qualquer número de interfaces.
A classe Dog pode se estender para a classe “Animal” e implementar a interface como “Pet”.
Java Exemplo de interface:
Vamos entender o programa de interface abaixo em Java:
Passo 1) Copie o código a seguir em um editor.
interface Pet{ public void test(); } class Dog implements Pet{ public void test(){ System.out.println("Interface Method Implemented"); } public static void main(String args[]){ Pet p = new Dog(); p.test(); } }
Passo 2) Salve, compile e execute o código. Observe a saída da interface em Java programa.
Diferença entre classe e interface
Na aula, você pode instanciar uma variável e criar um objeto. | Em uma interface, você não pode instanciar uma variável e criar um objeto. |
A classe pode conter métodos concretos (com implementação) | A interface não pode conter métodos concretos (com implementação) |
Os especificadores de acesso usados com classes são privados, protegidos e públicos. | Na Interface apenas um especificador é usado – Público. |
Quando usar Interface e Classe Abstrata?
- Use uma classe abstrata quando um modelo precisar ser definido para um grupo de subclasses
- Utilize uma interface quando uma função precisar ser definida para outras classes, independente da árvore de herança dessas classes
Deve saber fatos sobre a Interface
- A Java classe pode implementar vários Java Interfaces. É necessário que a classe implemente todos os métodos declarados nas interfaces.
- A classe deve substituir todos os métodos abstratos declarados na interface
- A interface permite enviar uma mensagem para um objeto sem se preocupar a quais classes ele pertence.
- A classe precisa fornecer funcionalidade para os métodos declarados na interface.
- Todos os métodos em uma interface são implicitamente públicos e abstratos
- Uma interface não pode ser instanciada
- Uma referência de interface pode apontar para objetos de suas classes de implementação
- Uma interface pode se estender de uma ou mais interfaces. A classe pode estender apenas uma classe, mas implementar qualquer número de interfaces
- Uma interface não pode implementar outra interface. Tem que estender outra interface, se necessário.
- Uma interface que é declarada dentro de outra interface é chamada de interface aninhada
- No momento da declaração, a variável de interface deve ser inicializada. Caso contrário, o compilador gerará um erro.
- A classe não pode implementar duas interfaces em java que possuem métodos com o mesmo nome, mas tipos de retorno diferentes.
Resumo:
- A classe que implementa a interface precisa fornecer funcionalidade para os métodos declarados na interface
- Todos os métodos em uma interface são implicitamente públicos e abstratos
- Uma interface não pode ser instanciada
- Uma referência de interface pode apontar para objetos de suas classes de implementação
- Uma interface pode se estender de uma ou mais interfaces. Uma classe pode estender apenas uma classe, mas implementar qualquer número de interfaces