En parlant d'interfaces, l'USB est certainement familier à tout le monde~
L'interface est une norme et une spécification.
Remarque : une fois l'interface formulée, les utilisateurs et les implémenteurs doivent suivre la norme.
(1) Mot clé : interface
(2) Syntaxe : interface interface name{}
(3) Une fois l'interface compilée, le fichier .class correspondant sera généré
(4) L'interface ne peut pas créer d'objets, mais il peut être déclaré Nom de l'interface de référence nom de référence ;
(5) Il n'y a pas de méthode constructeur dans l'interface
(6) Toutes les propriétés de l'interface sont des constantes statiques publiques
(Par défaut : public static final)
(7) Toutes les méthodes dans l'interface est une méthode abstraite publique
(modifiée par défaut par : public abstract)
Remarque : l'autorisation d'accès par défaut de la méthode dans l'interface est publique
L'autorisation d'accès par défaut de la méthode dans la classe est par défaut
Classe d'implémentation du interface :
Syntaxe :
class class Name Implements interface name {}
Remarque : Le mot-clé d'implémentation est Implements
(1) Si la classe d'implémentation ne veut pas devenir une classe abstraite, elle doit couvrir (implémenter ) toutes les méthodes de l'interface
(2) La classe d'implémentation remplace les méthodes de l'interface Lors de l'utilisation d'une méthode, l'autorisation d'accès doit être publique Utilisation :
(1) Dans la référence du type d'interface, uniquement les objets du. la classe d'implémentation correspondante peut être stockée, reflétant les applications polymorphes.
(2) Syntaxe :
Nom de référence du nom de l'interface = nouveau Nom de la classe d'implémentation (paramètre réel) ;Remarque : Une interface peut définir plusieurs classes d'implémentation Héritage de interface : (très important~)La relation entre les interfaces est un héritage multiple( 1) Une interface peut hériter de plusieurs interfaces parents en même temps (2) Syntaxe :
interface le nom de l'interface étend le nom de l'interface parent 1 , nom de l'interface parent 2{}La relation entre les classes et les interfaces est multi-implémentation
(1) Une classe peut implémenter plusieurs interfaces en même temps (2) Syntaxe :
classe nom de classe implémente l'interface nom 1, nom de l'interface 2 {}(3) Une classe peut implémenter plusieurs interfaces en même temps, je ne veux pas Pour devenir une classe abstraite, vous devez implémenter toutes les méthodes dans toutes les interfaces
(y compris les méthodes dans l'interface parent de l'interface implémentée)
classe le nom de la classe étend le nom de la classe parent implémente l'interface parent 1, l'interface parent 2 {}Remarque : doit d'abord s'étendre, puis implémenter Existe entre les classes : héritage unique --- ---étendExiste entre les classes et les interfaces : implémentations multiples------implémentsExiste entre les interfaces : héritage multiple ------étendL'impact des interfaces :1. une relation multi-héritage entre les interfaces et une relation multi-implémentation entre les classes et les interfaces, le polymorphisme est rendu plus diversifié et complexe
2. Si une seule des deux parties à la conversion de type forcée est un type d'interface, la compilation doit réussir. L'opération est divisée dans les deux situations suivantes :
a. Si le type d'objet réel stocké dans la référence convertie est l'un des types à convertir, l'opération réussit
b. Si le type d'objet réel stocké dans la référence convertie n'est pas l'un des types à convertir. celui à convertir, la compilation réussit, mais une erreur est signalée à l'exécution, le message d'erreur :
Java.lang.ClassCastException (exception de conversion de type)
a. Nom de la méthode de type de valeur de retour publique par défaut (liste de paramètres formels) {en utilisant en utilisant en utilisant en utilisant en utilisant ' ' s ' à travers ' ' s ' à travers ' ‐ ‐ ‐‐‐‐ , ce la méthode est autorisée à avoir une partie d'implémentation de méthode c. L'autorisation d'accès à la méthode par défaut est publique
(2) Méthode statique :
d. La méthode par défaut peut être remplacée, mais le modificateur d'accès lorsqu'il est remplacé est public
a . public static Nom de la méthode du type de valeur de retour (liste de paramètres formels) {
(1) À partir de la version 9.0 dans l'interface, les méthodes peuvent être modifiées par private
(2) Syntaxe :using using using using en utilisant en utilisant en utilisant en utilisant ‐ .
nom de la méthode du type de valeur de retour privé ( liste des paramètres formels) {
(3) Les méthodes privées sont destinées à un usage interne de l'interface, extrayant généralement les parties logiques communes d'autres méthodes pour réduire la redondance du code
Il n'y a que des attributs et aucune méthode dans l'interface , et il y a peu d'applications
Communément appelée interface marquée, il n'y a pas d'attributs ni d'abstractions dans l'interface
Par exemple : la sérialisation des objets IO est appliquée
Il n'y en a qu'une seule méthode abstraite dans l'interface (statique et par défaut ne le sont pas Faites attention), largement utilisée dans les expressions Lambda
Quelle est la différence entre les classes abstraites et les interfaces ? (Gardez cela à l'esprit ~)
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!