1. Por que usar interfaces
Se houver um requisito: requer a função da porta anti-roubo. A porta tem as funções de "Open" e "Close", e a fechadura tem as funções de "bloqueio" e "abertura".
Análise: Primeiro de tudo, a porta anti-roubo é uma porta. A porta tem as funções de abrir e fechar a porta, e também há uma fechadura. A fechadura tem desbloqueio e bloqueio. De acordo com a idéia de programação orientada a objetos, consideraremos a porta e a trava como uma classe e existiremos separadamente. No entanto, a porta anti-roubo não pode ser herdada da porta e do auto-bloqueio. A porta anti-roubo não é uma fechadura, que não está em conformidade com a relação de uma herança. A herança única é suportada em Java. Então, como resolvemos esse problema? Neste momento, precisamos usar a interface.
2. O que é uma interface
No software, as interfaces são uma especificação e padrão. Eles podem restringir o comportamento das classes e são uma coleção de alguns recursos do método. No entanto, não há implementação de métodos. As interfaces podem realmente ser consideradas uma classe abstrata especial, mas usam métodos completamente diferentes das classes abstratas para representá -las. Os conceitos de design dos dois também são diferentes. As classes abstratas são propícias à reutilização do código e as interfaces são propícias à expansão e manutenção do código.
3. A diferença entre classes abstratas e interfaces:
01 ABSTRATT CLASSES PODEM AS DETRADOS DE IMPLEMENTAÇÃO DOS MÉTODOS DE MEMBROS, enquanto apenas métodos de abstratos públicos podem existir na interface;
02. Variáveis de membros em classes abstratas podem ser de vários tipos, enquanto as variáveis de membros em interfaces podem ser apenas do tipo final público;
03. A interface não pode conter blocos de código estático e métodos estáticos, enquanto classes abstratas podem ter blocos de código estático e métodos estáticos;
04. Uma classe pode herdar apenas uma classe abstrata, enquanto uma classe pode implementar várias interfaces.
4. Como definir uma interface
Vamos primeiro olhar para a sintaxe:
[Modificador] o nome da interface da interface estende a interface parental 1, interface pai 2, ...
{
// Definição constante
// Definição do método
}
Implementar a sintaxe da interface em uma classe:
Classe Nome da classe Nome da classe pai implementa a interface 1, interface 2, ...
{
// Membro da classe
}
5. Definindo os pontos de interface
01. As regras de nomeação da interface são as mesmas da classe. Se o modificador for público, a interface será visível ao longo do projeto; Se o modificador for omitido, a interface só será visível no pacote atual.
02. As constantes podem ser definidas na interface, mas as variáveis não podem ser definidas. Se você definir atributos na interface, através da descompilação, poderá ver que ele o modificará automaticamente com a final estática pública. Os atributos na interface são constantes estáticas globais, e as constantes na interface devem especificar o valor inicial ao definir.
03. Todos os métodos na interface são métodos abstratos, e os métodos na interface serão automaticamente modificados com abstrato público, ou seja, existem apenas métodos abstratos globais na interface.
04. A interface não pode ser instanciada e não pode haver uma estrutura na interface.
05 A relação de herança pode ser realizada através de estendas entre interfaces. Uma interface pode herdar várias interfaces, mas a interface não pode herdar classes.
06. A classe de implementação da interface deve implementar todos os métodos da interface, caso contrário, deve ser definida como uma classe abstrata.