Maison >Java >javaDidacticiel >qu'est-ce que l'interface en Java
接口
(anglais : Interface), dans le langage de programmation JAVA, est un type abstrait et une collection de méthodes abstraites. L'interface est généralement déclarée avec interface. Une classe hérite des méthodes abstraites de l'interface en héritant de l'interface.
Les interfaces ne sont pas des classes. La façon d'écrire des interfaces est très similaire aux classes, mais elles appartiennent à des concepts différents. Les classes décrivent les propriétés et les méthodes d'un objet. L'interface contient les méthodes implémentées par la classe.
À moins que la classe qui implémente l'interface ne soit une classe abstraite, la classe doit définir toutes les méthodes de l'interface.
L'interface ne peut pas être instanciée, mais elle peut être implémentée. Une classe qui implémente une interface doit implémenter toutes les méthodes décrites dans l'interface, sinon elle doit être déclarée comme classe abstraite. De plus, en Java, les types d'interface peuvent être utilisés pour déclarer une variable, ils peuvent être un pointeur nul ou être liés à un objet qui implémente cette interface.
Le format de syntaxe de déclaration de l'interface est le suivant :
[可见度] interface 接口名称 [extends 其他的接口名] { // 声明变量 // 抽象方法}
Fonction
Dans la spécification du langage Java, le les caractéristiques d'une méthode incluent uniquement le nom de la méthode, le nombre et le type de paramètres, mais pas le type de retour de la méthode, les noms des paramètres et les exceptions levées. Lorsque le compilateur Java vérifie la surcharge des méthodes, il détermine si deux méthodes sont des méthodes surchargées en fonction de ces conditions. Mais lorsque le compilateur Java vérifie la substitution de la méthode, il vérifie en outre si le type de retour et l'exception levée par les deux méthodes (supertype et sous-type) sont identiques.
Les règles d'implémentation de l'interface et d'héritage de classe sont différentes. Pour la sécurité des données, une classe n'a qu'une seule classe parent directe lors de l'héritage, c'est-à-dire un héritage unique. Cependant, une classe peut implémenter plusieurs interfaces et les interfaces sont créées. Inconvénients de l'héritage multiple : La double conception de l'héritage et de l'interface maintient non seulement la sécurité des données de la classe, mais implémente également l'héritage multiple déguisé.
L'interface Java elle-même n'a aucune implémentation, car l'interface Java n'implique pas de représentation, mais décrit uniquement le comportement public, donc l'interface Java est plus abstraite que la classe abstraite Java. Mais les interfaces ne sont pas des classes et vous ne pouvez pas utiliser l'opérateur new pour instancier une interface. Tel que x=new comparable(...);//Ceci est une erreur. Mais la variable d'interface Comparable x peut être déclarée ; //C'est autorisé.
Les méthodes des interfaces Java ne peuvent être qu'abstraites et publiques. Les interfaces Java ne peuvent pas avoir de constructeurs. Les interfaces Java peuvent avoir des attributs publics, statiques et finaux. Autrement dit, les propriétés de l'interface peuvent être définies comme public static final int value=5 [1]
L'interface sépare les caractéristiques de la méthode et l'implémentation de la méthode. Cette séparation se reflète dans le fait qu'une interface représente souvent un rôle, qui regroupe les opérations et les propriétés liées à ce rôle, et que la classe qui implémente cette interface est l'acteur qui joue ce rôle. Un rôle est joué par différents acteurs, et différents acteurs n’ont besoin de rien d’autre en commun que de jouer un rôle commun.
Utilisez deux fonctions similaires dans les
deux classes pour appeler leurs classes afin de déterminer dynamiquement une implémentation, puis elles fournissent une classe parent abstraite, les classes enfants implémentent les méthodes définies par la classe parent respectivement.
Le problème se pose : Java est un langage à héritage unique. Généralement, une classe spécifique peut déjà avoir une superclasse. La solution est d'ajouter une classe parent à sa classe parent, ou de lui donner une classe parent. La classe parent plus la classe parent jusqu'à ce qu'elle se déplace vers le haut de la hiérarchie des classes. De cette manière, concevoir l’enfichage d’une classe spécifique devient une modification de toutes les classes de la hiérarchie entière.
Plugability
Toute classe dans une structure hiérarchique peut implémenter une interface. Cette interface affectera toutes les sous-classes de cette classe, mais n'affectera aucune superclasse de cette classe. Cette classe devra implémenter les méthodes spécifiées par cette interface, et ses sous-classes peuvent automatiquement hériter de ces méthodes de cette classe. Bien entendu, vous pouvez également choisir de remplacer toutes ces méthodes, ou certaines d'entre elles, à ce stade. Pluggability (et peut être chargé avec ce type d'interface, en passant toutes les sous-classes qui l'implémentent).
Ce qui nous importe n'est pas cette classe spécifique, mais si cette classe implémente l'interface dont nous avons besoin.
L'interface offre une possibilité d'association et d'appel de méthode. Plus l'échelle du système logiciel est grande, plus le cycle de vie est long. L'interface garantit la flexibilité et l'évolutivité du système logiciel.
Types
Utiliser les interfaces Java pour coupler des unités logicielles en interne et en externe. Utilisez des interfaces Java au lieu de classes concrètes pour déclarer des types de variables, renvoyer des déclarations de type pour les méthodes, des déclarations de type pour les paramètres et convertir des types de données.
Idéalement, une classe Java concrète ne devrait implémenter que l'interface Java et les méthodes déclarées dans la classe Java abstraite, et ne devrait pas donner de méthodes supplémentaires.
Structure hiérarchique
Les interfaces Java (et les classes abstraites) sont généralement utilisées comme point de départ pour la structure hiérarchique d'un type.
Si une classe a déjà un supertype principal (classe parent), alors en implémentant une interface, la classe peut avoir un autre supertype secondaire. Ce supertype secondaire est appelé type mixte.
Recommandations d'apprentissage associées : Tutoriel de base Java
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!