L'interface Java (interface) est une série de déclarations de méthodes et est une collection de fonctionnalités de méthode. Une interface n'a que les caractéristiques des méthodes mais aucune implémentation de la méthode. Par conséquent, ces méthodes peuvent être implémentées par différentes classes à différents endroits, et ces implémentations peuvent avoir des comportements différents (fonctions).
1. Signification de l'interface:
1. Interface Java, les structures qui existent dans le langage Java ont une syntaxe et une structure spécifiques;
2. Une collection de caractéristiques des méthodes d'une classe est une abstraction logique.
Le premier s'appelle "Java Interface" et le second est appelé "interface".
L'interface Java elle-même n'a aucune implémentation, car l'interface Java n'implique pas d'apparences, mais décrit uniquement le comportement public, donc l'interface Java est plus abstraite que la classe abstraite Java.
Les méthodes d'interface Java ne peuvent être abstraites et publiques. L'interface Java ne peut pas avoir de constructeur. L'interface Java peut avoir des propriétés publiques, statiques et finales.
2. Pourquoi utiliser l'interface Java est un seul langage d'héritage? Si vous souhaitez ajouter de nouvelles fonctions à des classes spécifiques avec des classes parentales existantes, sous le principe OCP, la solution consiste à ajouter des classes parentales à sa classe parent ou à ajouter des classes parentales à sa classe parent jusqu'à ce qu'elle se déplace en haut de la structure de hiérarchie de classe. De cette façon, la conception de l'insertabilité d'une classe spécifique devient une modification de toutes les classes dans toute la hiérarchie.
Lorsqu'il y a une interface, dans l'exemple ci-dessus, il n'est pas nécessaire de maintenir toutes les classes dans toute la structure de hiérarchie.
3. L'interface a une insertabilité:
Toute classe d'une hiérarchie peut implémenter une interface, qui affectera toutes les sous-classes de cette classe, mais n'affectera aucune supercasse de cette classe. Cette classe devra implémenter les méthodes spécifiées par cette interface, et ses sous-classes peuvent hériter automatiquement de ces méthodes de cette classe, et bien sûr, elles peuvent également choisir de remplacer toutes ces méthodes, ou certaines d'entre elles. À l'heure actuelle, ces sous-classes sont enfichables (et peuvent être chargées de ce type d'interface, passant et implémentant toutes ses sous-classes).
L'interface fournit des appels d'interpolation et de méthode. Plus l'échelle du système logiciel est grande, plus le cycle de vie est long. L'interface assure la flexibilité et l'évolutivité du système logiciel et l'interpolation.
C'est précisément à cause de l'interface que l'héritage unique Java a la possibilité d'une nouvelle extension (remplacement de l'héritage multiple); 3. La hiérarchie de type interface Java (et classes abstraites) est généralement utilisée comme point de départ d'une hiérarchie de type.
Si une classe a déjà un supertype majeur, en implémentant une interface, la classe peut avoir un autre supertype mineur, qui est appelé type hybride.
4. Classification de l'interface Java
1. Interface ordinaire (y compris la définition de la méthode) Interface publique ActionListener {public abstract void ActionPerformed (événement d'actionEvent);}
2. Interface d'identification (pas de méthode et définition d'attribut) L'interface d'identification est une interface sans méthodes et attributs. L'interface d'identification n'a pas d'exigences sémantiques pour la classe qui les implémente. Il indique seulement que la classe qui s'implémente appartient à un type spécifique.
Interface publique Serializable {}; 3. L'interface constante fait référence à l'utilisation d'une interface Java pour déclarer certaines constantes, puis les classes qui implémentent cette interface utilisent ces constantes.
Interface publique AppConstants {public static final data_source_name = "test"; public static final user_name = "test"; public static final mot de passe = "test";}
5. Caractéristiques de l'interface
1. Les variables membre dans l'interface Java sont publiques, statiques et finales par défaut (qui peuvent toutes être omises), et doivent être affichées et initialisées, c'est-à-dire que les variables membre dans l'interface sont des constantes (Caps, séparés par "_" entre les mots)
2. Les méthodes de l'interface Java sont de type public et abstrait par défaut (tous peuvent être omis). Sans corps de méthode, ils ne peuvent pas être instanciés.
3. L'interface Java ne peut contenir des variables des membres que des types publics, statiques, finaux et des méthodes membres de types publics, abstraits.
4. Il n'y a pas de constructeur dans l'interface et ne peut pas être instancié.
5. Une interface ne peut pas implémenter une autre interface, mais elle peut hériter de plusieurs autres interfaces.
6. L'interface Java doit implémenter ses méthodes abstraites à travers des classes.
7. Lorsqu'une classe met en œuvre une certaine interface Java, elle doit implémenter toutes les méthodes abstraites de l'interface, sinon cette classe doit être déclarée comme une classe abstraite
8. Il n'est pas autorisé à créer une instance de l'interface (instance) mais il est autorisé à définir une variable de référence du type d'interface. Cette variable de référence fait référence à une instance de la classe qui implémente cette interface.
9. Une classe ne peut hériter qu'une seule classe parent directe, mais peut implémenter plusieurs interfaces, implémenter indirectement l'héritage multiple.
6. La différence entre l'interface Java et les classes abstraites de Java Le foyer de la conception orientée objet est l'abstraction. Les classes abstraites et les interfaces sont situées sur la couche supérieure de l'arborescence des successions.
Similitudes:
1. Représente la couche d'abstraction du système. Lorsqu'un système utilise une classe sur un arbre d'héritage, il devrait essayer de déclarer la variable de référence comme type abstrait supérieur de l'arborescence des successions. Cela peut améliorer le couplage entre les deux systèmes. 2. Aucun des deux ne peut être instancié 3. Les deux contiennent des méthodes abstraites. Ces méthodes abstraites sont utilisées pour décrire les services que le système peut fournir, mais ne contiennent pas les différences dans le corps de la méthode:
1. La plus grande différence est que la classe abstraite Java peut fournir des implémentations partielles de certaines méthodes, tandis que l'interface Java ne peut pas; C'est probablement le seul avantage de la classe de résumé Java, mais cet avantage est très utile.
Vous pouvez ajouter une nouvelle méthode de béton à la classe abstraite, et toutes les sous-classes obtiendront automatiquement cette méthode; Mais ajoutez une nouvelle méthode à l'interface Java, et toutes les classes qui implémentent cette interface ne peuvent pas être compilées avec succès, et vous devez ajouter manuellement l'implémentation de cette méthode à chaque classe qui implémente l'interface;
2. L'implémentation d'une classe abstraite ne peut être donnée que par une sous-classe, c'est-à-dire que la mise en œuvre ne peut être que dans la structure hiérarchique héréditaire définie par la classe abstraite; Par conséquent, l'efficacité d'une classe abstraite en tant qu'outil de définition de type est considérablement réduite.
Interface Java. Toute classe qui implémente les méthodes spécifiées par une interface Java peut avoir le type de cette interface, et une classe peut implémenter toutes les interfaces Java multiples, afin que cette classe ait plusieurs types.
Comme on peut le voir ci-dessus, l'interface Java est un outil idéal pour définir des types mixtes. Les classes mixtes indiquent qu'une classe a non seulement le comportement d'un certain type primaire, mais aussi d'autres comportements secondaires.
3. Combinant les avantages respectifs des classes abstraites et des interfaces Java dans les points 1 et 2, un modèle de conception classique sortira:
Le travail de déclaration d'un type est toujours entrepris par l'interface Java, mais en même temps, une classe de résumé Java est donnée et cette interface est implémentée. D'autres classes concrètes qui appartiennent également à ce type abstrait peuvent choisir d'implémenter cette interface Java ou hériter de cette classe abstraite. C'est-à-dire que dans la hiérarchie, l'interface Java est en haut puis suivie de la classe abstraite. Les plus grands avantages de ces deux peuvent être maximisés. Ce mode est le "mode d'adaptation par défaut".
Ce modèle est utilisé dans l'API de langue Java, et tout suit certaines spécifications de dénomination: Nom d'interface abstrait +.
7. Le principe global de l'utilisation des interfaces et des classes abstraites:
1. Utilisez l'interface comme fenêtre pour l'interaction entre le système et le monde extérieur. Debout du point de vue de l'utilisateur extérieur (un autre système), l'interface promet à l'utilisateur quels services que le système peut fournir, et du point de vue du système lui-même, que les services que l'interface doit implémenter. L'interface est le type abstrait de niveau le plus élevé dans le système. Grâce à l'interaction d'interface, le système de couplage A entre les deux systèmes peut être amélioré pour interagir via le système B. Cela signifie que lorsque le système A accède au système B, la variable de référence déclare la variable de référence comme type d'interface dans le système B. Cette variable de référence se réfère à l'instance de la classe d'implémentation de l'interface dans le système B.
Interface publique B {}
La classe publique C implémente B {}
classe publique a {b a = new C (); }
2. L'interface Java elle-même doit être très stable. Une fois l'interface Java formulée, il n'est pas autorisé à aller comme cela se produit, sinon il aura un impact sur les utilisateurs externes et le système lui-même. 3. Utilisez des classes abstraites pour personnaliser les points d'extension du système et des classes abstraites pour terminer la mise en œuvre partielle. Certaines fonctions doivent être implémentées via ses sous-classes.
L'article ci-dessus détaille les concepts, les classifications et les différences par rapport aux catégories abstraites des interfaces Java sont tout le contenu que je partage avec vous. J'espère que vous pourrez vous faire référence et j'espère que vous pourrez soutenir Wulin.com plus.