O que é interface em Java com exemplo

Índice:

Anonim

O que é interface em Java?

Uma Interface na programação Java é 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.

Sintaxe para declaração de interface

interface {//methods}

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

Exemplo para implementação de interface

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 conceito de interface Java, vejamos um exemplo. A classe "Media Player" possui duas subclasses: CD player e DVD player. Cada um tem seu método de implementação exclusivo para tocar música.

Outra classe "Combo drive" está herdando CD e DVD (veja a imagem abaixo). Qual método de jogo ele 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 é 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:

Etapa 1) Copie o código a seguir em um editor.

interface Pet {teste de void público ();}class Dog implementa Pet {public void test () {System.out.println ("Método de interface implementado");}public static void main (String args []) {Pet p = novo cão ();p.test ();}}

Etapa 2) Salvar, compilar e executar o código. Observe a saída.

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 com tipo de retorno diferente.

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