Uma interface é um tipo de referência em Java. É semelhante à classe. É uma coleção de métodos abstratos. Uma classe implementa uma interface, herdando assim os métodos abstratos da interface.
junto com métodos abstratos, uma interface também pode conter constantes, métodos padrão, métodos estáticos e tipos aninhados. Os corpos do método existem apenas para métodos padrão e métodos estáticos.,
escrever uma interface é semelhante a escrever uma classe. Mas uma classe descreve os atributos e comportamentos de um objeto. E uma interface contém comportamentos que uma classe implementa.
a menos que a classe que implementa a interface seja abstrata, todos os métodos da interface precisam ser definidos na classe.
uma interface é semelhante a uma classe nas seguintes formas −
-
uma interface pode conter qualquer número de métodos.
-
uma interface é escrita em um arquivo com A.extensão java, com o nome da interface correspondente ao nome do arquivo.,
-
o código byte de uma interface aparece em A.ficheiro da turma.
-
Interfaces aparecem em pacotes, e o seu ficheiro bytecode correspondente deve estar numa estrutura de pastas que corresponda ao nome do pacote.
No entanto, uma interface é diferente de uma classe de várias maneiras, incluindo −
-
Você não pode instanciar uma interface.
-
uma interface não contém nenhum construtor.
-
todos os métodos numa interface são abstractos.
-
uma interface não pode conter campos de instância., Os únicos campos que podem aparecer em uma interface devem ser declarados estáticos e finais.
-
uma interface não é estendida por uma classe; é implementada por uma classe.
-
uma interface pode estender várias interfaces.
declarando Interfaces
a palavra-chave da interface é usada para declarar uma interface. Aqui está um exemplo simples para declarar uma interface
Exemplo
a Seguir está um exemplo de uma interface
Interfaces têm as seguintes propriedades −
-
Uma interface é implicitamente abstract., Você não precisa usar a palavra-chave abstrata ao declarar uma interface.
-
cada método em uma interface também é implicitamente abstrato, então a palavra-chave abstrata não é necessária.
-
os métodos numa interface são implicitamente públicos.
Exemplo
/* File name : Animal.java */interface Animal { public void eat(); public void travel();}
a Implementação de Interfaces
Quando uma classe implementa uma interface, você pode pensar que a classe como a assinatura de um contrato, comprometendo-se a executar os comportamentos específicos da interface. Se uma classe não executa todos os comportamentos da interface, A classe deve declarar-se abstrata.,
uma classe usa a palavra-chave implementa para implementar uma interface. A palavra-chave implementa aparece na declaração de classe após a parte estendida da declaração.
Exemplo
Isso irá produzir o seguinte resultado
de Saída
Mammal eatsMammal travels
Quando substituir métodos definidos nas interfaces, existem várias regras a ser seguido
-
Verificado exceções não devem ser declarados na implementação de outros métodos que não os declarados pelo método de interface ou subclasses de aqueles declarados pelo método de interface.,
-
a assinatura do método da interface e do mesmo tipo de retorno ou subtipo deve ser mantida quando se sobrepõem os métodos.
-
uma classe de implementação em si pode ser abstrata e, se assim for, os métodos de interface não precisam ser implementados.
Quando interfaces de implementação, existem várias regras –
-
uma classe pode implementar mais de uma interface de cada vez.
-
uma classe pode estender apenas uma classe, mas implementar muitas interfaces.
-
Uma interface pode estender outra interface, de uma forma semelhante como uma classe pode estender outra classe.,
Estendendo Interfaces
Uma interface pode estender outra interface, da mesma forma que uma classe pode estender outra classe. A palavra-chave estendida é usada para estender uma interface, e a interface criança herda os métodos da interface pai.
a seguinte interface esportiva é estendida por interfaces de hóquei e futebol.
exemplo
a interface de hóquei tem quatro métodos, mas herda dois dos Esportes; assim, uma classe que implementa o hóquei precisa implementar todos os seis métodos., Do mesmo modo, uma classe que implementa o futebol precisa definir os três métodos do futebol e os dois métodos Do Esporte.
estender múltiplas Interfaces
Uma classe Java só pode estender uma classe-mãe. Não é permitida a herança múltipla. Interfaces não são classes, no entanto, e uma interface pode estender mais do que uma interface pai.
A Palavra-chave extendida é usada uma vez, e as interfaces-mãe são declaradas numa lista separada por vírgulas.,
Por exemplo, se o Hóquei interface estendida Esportes e Eventos, seria declarado como
Exemplo
public interface Hockey extends Sports, Event
Marcação de Interfaces
O uso mais comum de ampliar interfaces ocorre quando o pai de interface não contém quaisquer métodos. Por exemplo, a interface Mousselistener no java.awt.event package extended java.util.EventListener, que é definido como
Exemplo
package java.util;public interface EventListener{}
Uma interface com nenhum método é referido como uma interface de marcação., Existem dois propósitos básicos de design de tagging interfaces –
cria um pai comum-como com a interface EventListener, que é estendida por dezenas de outras interfaces na API Java, você pode usar uma interface de tagging para criar um pai comum entre um grupo de interfaces. Por exemplo, quando uma interface estende o EventListener, a JVM sabe que esta interface específica vai ser usada em um cenário de delegação de eventos.
adiciona um tipo de dados a uma classe − esta situação é de onde o termo, marcação vem., Uma classe que implementa uma interface de marcação não precisa definir quaisquer métodos (uma vez que a interface não tem nenhum), mas a classe torna-se um tipo de interface através de polimorfismo.