Le modificateur de l'interface Java peut être "public abstract". L'interface est utilisée pour décrire tous les services fournis par le système, donc les constantes et méthodes membres de l'interface doivent être de type public ; l'interface décrit uniquement ce que le système peut faire, mais ne précise pas comment le faire, donc le les méthodes de l’interface sont des méthodes abstraites.
Le modificateur de l'interface Java est par défaut public abstract car l'interface doit être implémentée.
L'interface est très importante. Pour expliquer la situation, voici un peu plus détaillé :
(1) L'interface sert à décrire tous les services fournis par le système, donc les constantes membres. et les méthodes de l'interface 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 le faire, donc les méthodes dans le l'interface est abstraite.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) Les variables de l'interface sont communes à toutes les classes d'implémentation. Puisqu'elles sont communes, elles doivent être constantes, car changer des choses ne peut pas être considéré comme commun. Par conséquent, la variable est un type immuable (final), qui est une constante. (5) Les variables ne peuvent pas être définies dans l'interface ? 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 : **Les méthodes d'interface sont publiques abstraites par défaut ; Vous ne pouvez pas définir de variables dans l'interface, seulement des constantes (avec la modification finale, elles deviendront constantes) . Par conséquent, les propriétés de l’interface sont des constantes finales statiques publiques par défaut et doivent se voir attribuer une valeur initiale. **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!