1. Pourquoi utiliser les interfaces
S'il y a une exigence: elle nécessite la fonction de la porte antivol. La porte a les fonctions de "Open" et "Fermer", et le verrou a les fonctions de "verrouillage" et "ouverture".
Analyse: Tout d'abord, la porte antivol est une porte. La porte a les fonctions d'ouvrir et de fermer la porte, et il y a aussi une serrure. La serrure a un déverrouillage et un verrouillage. Selon l'idée de la programmation orientée objet, nous considérerons à la fois la porte et la serrure comme une classe et existerons séparément. Cependant, la porte anti-vol ne peut pas être héritée de la porte et de l'auto-verrouillage. La porte antivol n'est pas une serrure, qui ne se conforme pas à la relation de l'héritage. L'héritage unique est soutenu en Java. Alors, comment résolvons-nous ce problème? Pour le moment, nous devons utiliser l'interface.
2. Qu'est-ce qu'une interface
Dans les logiciels, les interfaces sont une spécification et une norme. Ils peuvent limiter le comportement des classes et sont une collection de certaines fonctionnalités de méthode. Cependant, il n'y a pas de mise en œuvre de méthodes. Les interfaces peuvent en fait être considérées comme une classe abstraite particulière, mais elles utilisent des méthodes complètement différentes des classes abstraites pour les représenter. Les concepts de conception des deux sont également différents. Les classes abstraites sont propices à la réutilisation du code, et les interfaces sont propices à l'expansion et à la maintenance du code.
3. La différence entre les classes abstraites et les interfaces:
Les classes 01Abstract peuvent fournir des détails de mise en œuvre des méthodes des membres, tandis que seules les méthodes abstraites publiques peuvent exister dans l'interface;
02. Les variables membres dans les classes abstraites peuvent être de différents types, tandis que les variables membres dans les interfaces ne peuvent être que de type final statique public;
03. L'interface ne peut pas contenir des blocs de code statique et des méthodes statiques, tandis que les classes abstraites peuvent avoir des blocs de code statique et des méthodes statiques;
04. Une classe ne peut hériter qu'une seule classe abstraite, tandis qu'une classe peut implémenter plusieurs interfaces.
4. Comment définir une interface
Regardons d'abord la syntaxe:
[Modificateur] Le nom de l'interface de l'interface étend l'interface parent 1, l'interface parent 2, ...
{
// Définition constante
// Définition de la méthode
}
Implémentez la syntaxe d'interface dans une classe:
Nom de classe Nom de classe Le nom de la classe Parent implémente l'interface 1, interface 2, ...
{
// membre de la classe
}
5. Définition des points d'interface
01. Les règles de dénomination de l'interface sont les mêmes que celles de la classe. Si le modificateur est public, l'interface est visible tout au long du projet; Si le modificateur est omis, l'interface n'est visible que dans le package actuel.
02. Les constantes peuvent être définies dans l'interface, mais les variables ne peuvent pas être définies. Si vous définissez des attributs dans l'interface, puis par décompilation, vous pouvez voir qu'il le modifiera automatiquement avec la finale statique publique. Les attributs de l'interface sont toutes des constantes statiques globales, et les constantes de l'interface doivent spécifier la valeur initiale lors de la définition.
03. Toutes les méthodes de l'interface sont des méthodes abstraites, et les méthodes de l'interface seront automatiquement modifiées avec un résumé public, c'est-à-dire qu'il n'y a que des méthodes abstraites globales dans l'interface.
04. L'interface ne peut pas être instanciée et il ne peut pas y avoir de structure dans l'interface.
05 La relation d'héritage peut être réalisée à travers des étendues entre les interfaces. Une interface peut hériter de plusieurs interfaces, mais l'interface ne peut pas hériter de classes.
06. La classe d'implémentation d'interface doit implémenter toutes les méthodes de l'interface, sinon elle doit être définie comme une classe abstraite.