Maison  >  Article  >  Java  >  Quels peuvent être les modificateurs de l'interface Java

Quels peuvent être les modificateurs de l'interface Java

青灯夜游
青灯夜游original
2023-01-04 13:04:092986parcourir

Les modificateurs de l'interface Java peuvent être abstraits et définitifs. L'interface peut être comprise comme une classe spéciale. La différence est que les membres de l'interface n'ont pas de corps d'exécution et sont composés de constantes globales et de méthodes abstraites publiques ; dans l'interface. Les constantes peuvent être définies (avec la modification finale, elles deviendront des constantes), donc les propriétés de l'interface sont des constantes finales statiques publiques par défaut et doivent se voir attribuer une valeur initiale.

Quels peuvent être les modificateurs de l'interface Java

L'environnement d'exploitation de ce tutoriel : système windows7, version java8, ordinateur DELL G3.

Une classe abstraite est un modèle abstrait de plusieurs classes. Si cette abstraction est effectuée de manière plus approfondie, une "classe abstraite" plus spéciale - Interface (Interface) peut être extraite. L'interface est l'un des concepts les plus importants de Java. Elle peut être comprise comme une classe spéciale. La différence est que les membres de l'interface n'ont pas de corps d'exécution et sont composés de constantes globales et de méthodes abstraites publiques.

Define interface

Les interfaces Java sont essentiellement définies de la même manière que les classes, mais le mot-clé utilisé dans la définition de l'interface est interface. Le format syntaxique de la définition de l'interface est le suivant :

[public] interface interface_name [extends interface1_name[, interface2_name,…]] {
    // 接口体,其中可以包含定义常量和声明方法
    [public] [static] [final] type constant_name = value;    // 定义常量
    [public] [abstract] returnType method_name(parameter_list);    // 声明方法
}

La description de ce qui précède. la syntaxe est la suivante :

  • public représente le modificateur de l'interface. Lorsqu'il n'y a pas de modificateur, le modificateur par défaut est utilisé. A ce moment, les droits d'accès à l'interface sont limités au package auquel elle appartient ;

  • interface_name représente le nom de l'interface. Le nom de l'interface doit adopter les mêmes règles de dénomination que le nom de la classe, c'est-à-dire que, d'un point de vue grammatical, le nom de l'interface doit uniquement être un identifiant légal. Pour se conformer aux spécifications de lisibilité de Java, un nom d'interface doit être une concaténation de mots significatifs, avec la première lettre de chaque mot en majuscule, sans aucun séparateur entre les mots.

  • extends représente la relation d'héritage de l'interface ;

  • interface1_name représente le nom de l'interface à hériter

  • constant_name représente le nom de la variable, généralement statique et final ; valeur de retour de la méthode Type ;

  • parameter_list représente la liste des paramètres et les méthodes de l'interface n'ont pas de corps de méthode.

  • Remarque : Une interface peut avoir plusieurs interfaces parents directes, mais les interfaces ne peuvent hériter que d'interfaces, pas de classes.

Modificateurs de l'interface java

L'interface est très importante Afin d'expliquer la situation, voici un peu plus détaillé : (1) L'interface sert à décrire tous les services fournis par le. système vers le monde extérieur, donc les constantes membres dans l'interface et les méthodes doivent être de type public pour garantir que les utilisateurs externes peuvent y accéder

(2) L'interface décrit uniquement ce que le système peut faire, mais ne précise pas comment ; faites-le, donc les méthodes de l'interface sont abstraites Méthode ;

(3) L'interface n'implique aucun détail lié à une instance spécifique, donc l'interface n'a pas de méthode de construction, ne peut pas être instanciée, n'a pas de variables d'instance, seulement des variables statiques ;

(4) Variables dans l'interface C'est commun à toutes les classes d'implémentation Comme c'est commun, ce doit être quelque chose qui ne change pas, car les choses qui changent ne peuvent pas être considérées comme communes. Par conséquent, la variable est un type immuable (final), qui est une constante.

(5) Les variables ne peuvent pas être définies dans les interfaces ? Si l'interface peut définir des variables, mais que les méthodes de l'interface sont abstraites, les propriétés ne peuvent pas être modifiées via le comportement de l'interface. Certains diront que ce n'est pas grave, vous pouvez modifier les propriétés de l'interface via le comportement de l'objet qui implémente l'interface. Cela ne pose bien sûr aucun problème, mais considérez cette situation. S'il existe une variable statique a avec accès public dans l'interface A. Selon la sémantique de Java, nous pouvons accéder à la variable a sans utiliser l'objet qui implémente l'interface. Nous pouvons modifier la valeur de la variable a dans l'interface via A.a = xxx;. Tout comme cela peut être fait dans une classe abstraite, tous les objets qui implémentent l'interface A auront automatiquement la valeur modifiée de a. Autrement dit, si a est modifié à un endroit, la valeur de a dans tous ces objets suivra également. . changé. Quelle est la différence entre cela et une classe abstraite ?Comment refléter le niveau d'abstraction supérieur de l'interface ?Comment refléter le protocole unifié fourni par l'interface ?Alors à quoi sert l'abstraction de l'interface ? Par conséquent, les variables ne peuvent pas apparaître dans l'interface. S'il y a des variables, cela entre en conflit avec l'idée d'abstraction unifiée fournie par l'interface. Par conséquent, les attributs de l'interface doivent être des constantes, qui peuvent uniquement être lues et ne peuvent pas être modifiées. Ce n'est qu'ainsi qu'un attribut unifié peut être fourni pour l'objet qui implémente l'interface.

En termes simples, si vous pensez que quelque chose doit être modifié, mettez-le dans votre propre implémentation et non dans une interface. Une interface est simplement une abstraction de niveau supérieur des attributs et des comportements d'un type de chose. Fermée à la modification et ouverte aux extensions (différentes implémentations), l'interface est une manifestation du principe ouvert-fermé.

Donc :

La méthode par défaut de l'interface est public abstract ;

Vous ne pouvez pas définir de variables dans l'interface, seulement des constantes (avec la modification finale, elles deviendront des constantes). Par conséquent, les propriétés de l'interface sont des constantes public static final par défaut et doivent se voir attribuer une valeur initiale.

Remarque : le final et le résumé ne peuvent pas apparaître en même temps.

Pour plus de connaissances liées à la programmation, veuillez visiter : Enseignement de la programmation ! !

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn