que é interface em Java: como implementar interface com exemplo

O que é interface em Java?

A Interface em Java linguagem de programação é definida como um tipo abstrato usado para especificar o comportamento de uma classe. Uma interface Java contém constantes estáticas e métodos abstratos. Uma classe pode implementar várias interfaces. Em Java, as interfaces são declaradas usando a palavra-chave interface. Todos os métodos da interface são implicitamente públicos e abstratos.

Agora, aprenderemos como usar a interface em Java.

Sintaxe para declaração de interface

Para usar uma interface em sua classe, acrescente a palavra-chave 'implements' após o nome da classe, seguido pelo nome da interface.

interface { //methods } 

Exemplo para implementação de interface

Agora, vamos entender a interface em Java com o 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 melhor o uso da interface em Java, vamos ver um exemplo de interface Java. A classe 'Media Player' tem duas subclasses: CD player e DVD player. Cada um com sua implementação de interface única no método Java para tocar música.

Outra classe 'Combo drive' está herdando CD e DVD (veja a imagem abaixo). Qual método de jogo deve herdar? Isso pode causar sérios problemas de design. E, portanto, Java não permite herança múltipla.

Agora vamos dar outro exemplo de Cachorro.

Suponha que você tenha um requisito onde a classe 'cachorro' herda a classe 'animal' e 'Animal de estimação' (veja a imagem abaixo). Mas você não pode estender duas classes em Java. Então, o que você faria? A solução é a Interface.

O livro de regras da interface diz,

  • Uma interface de implementação Java é uma classe 100% abstrata e possui apenas métodos abstratos.
  • A classe pode implementar qualquer número de interfaces.

A classe Dog pode estender para a classe 'Animal' e implementar a interface como 'Pet'.

Exemplo de interface Java:

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 no programa Java.

Diferença entre classe e interface

Aula Interface
Na aula, você pode instanciar a variável e criar um objeto. Em uma interface, você não pode instanciar a 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 a interface e a classe abstrata?

  • Use uma classe abstrata quando um modelo precisa ser definido para um grupo de subclasses
  • Use uma interface quando uma função precisar ser definida para outras classes, independentemente da árvore de herança dessas classes

Deve saber fatos sobre a interface

  • Uma classe Java pode implementar várias interfaces Java. É necessário que a classe implemente todos os métodos declarados nas interfaces.
  • A classe deve sobrescrever todos os métodos abstratos declarados na interface
  • A interface permite enviar uma mensagem a um objeto sem importar 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. Ele deve 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 tenham métodos com o mesmo nome, mas diferentes tipos de retorno.

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