interface Java
Interface (Inglês: Interface), na linguagem de programação JAVA é um tipo abstrato, é uma coleção de métodos abstratos, as interfaces normalmente interagir com o comunicado. Uma classe herdando o modo de interface, assim, herdar abstract interface de métodos.
A interface não é uma classe, ea abordagem de classe para a interface de preparação é muito semelhante, mas eles pertencem a diferentes conceitos. Classe descreve as propriedades do objeto e métodos. classe método para implementar a interface contém.
A menos que a implementação da classe de interface é abstrata, ou então para definir a interface de classe todos os métodos.
Interface não pode ser instanciada, mas ele pode ser implementado. Uma classe que implementa a interface, todos os métodos descritos na interface deve ser implementado, caso contrário ele deve ser declarado como uma classe abstrata. Além disso, em Java, o tipo de interface é usada para declarar uma variável, eles podem se tornar um ponteiro nulo, ou está ligado a um objeto dessa interface.
Uma interface semelhante a um ponto de classe:
- Uma interface pode ter vários métodos.
- arquivo .java interface é salva no final do arquivo, o nome do arquivo usando o nome da interface.
- interface de arquivo bytecode é salvo em um arquivo que termina em .class.
- Interface de arquivo bytecode correspondente com o nome do pacote deve corresponder à estrutura de diretórios.
- Interface não pode ser usada para instanciar objectos.
- A interface não é o construtor.
- Todos os métodos de interface deve ser métodos abstratos.
- Interfaces não podem conter variáveis de membro, além de variáveis estáticas e finais.
- Interface não é herdada pela classe, mas a classe é para ser realizado.
- Interface suporta herança múltipla.
As declarações de interface
sintaxe de declaração de interface é a seguinte:
[可见度] interface 接口名称 [extends 其他的类名] { // 声明变量 // 抽象方法 }
palavra-chave interface é usada para declarar uma interface. Aqui está um exemplo simples de uma declaração de interface.
/* 文件名 : NameOfInterface.java */ import java.lang.*; //引入包 public interface NameOfInterface { //任何类型 final, static 字段 //抽象方法 }Interface tem as seguintes características:
- A interface é implicitamente abstrato, ao declarar uma interface quando não é necessário usar a palavra-chave abstrato.
- Cada método de interface é implicitamente abstract declaração abstrato, não requer a mesma sub-chave.
- métodos de interface são públicos.
Exemplos
/* 文件名 : Animal.java */ interface Animal { public void eat(); public void travel(); }
Implementação da interface
Quando a classe implementa a interface classe de interface de todos os métodos de alcançar. Caso contrário, a classe deve ser declarada como uma classe abstrata.
Use implementa classe palavra-chave que implementa a interface. Na declaração da classe, Implementa palavra-chave por trás declaração de classe.
Implementar uma sintaxe de interface, você pode usar esta fórmula:
... implements 接口名称[, 其他接口, 其他接口..., ...] ...
Exemplos
/* 文件名 : MammalInt.java */ public class MammalInt implements Animal{ public void eat(){ System.out.println("Mammal eats"); } public void travel(){ System.out.println("Mammal travels"); } public int noOfLegs(){ return 0; } public static void main(String args[]){ MammalInt m = new MammalInt(); m.eat(); m.travel(); } }
Os exemplos acima são compilados os resultados como se segue:
Mammal eats Mammal travels
Ao substituir métodos declarados na interface, você precisa prestar atenção para as seguintes regras:
- Classe ao implementar métodos de interface, você não pode lançar uma exceção obrigatória, apenas na interface, ou herdar a interface de classe abstrata lançada a excepção imperativa.
- Classe quando reescrevendo Para manter um nome de método consistente e deve permanecer o mesmo ou compatível tipo de retorno.
- Se a execução da classe de interface é resumo, então não há necessidade de se aplicar o método da interface.
No momento da implementação da interface, mas também prestar atenção a algumas regras:
- Uma classe pode implementar várias interfaces.
- Uma classe só pode herdar uma classe, mas pode implementar várias interfaces.
- Uma interface pode herdar uma outra interface, e as classes que herdam comparação entre similar.
interface de herança
Uma interface pode herdar uma outra interface, mais semelhantes entre as classes e herança. interface de herança estende palavra-chave sub-interface de herda os métodos de interface pai.
interfaces de hóquei e futebol As seguintes interfaces são herdadas Sports:
// 文件名: Sports.java public interface Sports { public void setHomeTeam(String name); public void setVisitingTeam(String name); } // 文件名: Football.java public interface Football extends Sports { public void homeTeamScored(int points); public void visitingTeamScored(int points); public void endOfQuarter(int quarter); } // 文件名: Hockey.java public interface Hockey extends Sports { public void homeGoalScored(); public void visitingGoalScored(); public void endOfPeriod(int period); public void overtimePeriod(int ot); }
-se Hockey interface declara quatro métodos, a interface herda dois métodos de Desporto, de modo a perceber a necessidade de implementar a classe de hóquei interface de seis métodos.
Da mesma forma, a classe implementação da interface de futebol precisa implementar cinco métodos, incluindo duas das interfaces de Esportes.
interface de herança múltipla
Em Java, a classe herança múltipla não é legal, mas a interface permite herança múltipla.
Na interface de herança múltipla estende palavra-chave apenas uma vez, nas interfaces de follow-de herança subsequentes. Como se segue:
public interface Hockey extends Sports, Event
O fragmento de programa acima é definido legalmente sub-interfaces, ao contrário de classes que interface permite herança múltipla e Esportes e eventos poderá definir ou herdar o mesmo método
interface de marcador
A interface herdada mais comum não contém quaisquer métodos da interface.
Ele identifica a interface há métodos de interface e propriedades. Apenas indica que ele pertence a um tipo específico de classe para outro código para testar permissão para fazer alguma coisa.
Identifica o papel da interface: simples imagem de um objeto que é fazer uma marca (construir um carimbo), ou fazer um objeto tem um certo privilégio.
Por exemplo: Pacote java.awt.event interfaces de MouseListener interface de herança java.util.EventListener são definidos da seguinte forma:
package java.util; public interface EventListener {}
Não há nenhuma maneira a interface é chamada de interface de marcador. A interface de marcador é usado principalmente para duas finalidades:
- O estabelecimento de uma interface de pai comum:
Como EventListener interface, que é composto de dezenas de outra API Java Extension Interface, você pode usar uma interface de marcador para estabelecer um conjunto de interface de interface do pai. Por exemplo: quando uma interface herda EventListener interface, a Máquina Virtual Java (JVM) para conhecer a interface para ser utilizada por um programa de agente de eventos.
- Somando-se a um tipo de dados de classe:
Esta situação é um propósito interface de marcação original, a classe que implementa a interface de marcador não precisa definir quaisquer métodos de interface (como interface de marcador é simplesmente nenhuma maneira), mas a classe em um tipo de interface através do polimorfismo.