Maison  >  Article  >  Java  >  Différences de syntaxe d'interface entre les versions Java et similitudes et différences entre les classes abstraites et les interfaces

Différences de syntaxe d'interface entre les versions Java et similitudes et différences entre les classes abstraites et les interfaces

PHPz
PHPzavant
2023-05-06 14:52:131097parcourir

Qu'est-ce qu'une interface ?

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.

Différences de syntaxe dinterface entre les versions Java et similitudes et différences entre les classes abstraites et les interfaces

Syntaxe de l'interface : ( JDK7. 0)

(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)

Une classe peut implémenter plusieurs interfaces et hériter d'une classe en même temps

(1) Si une classe hérite Une classe parent qui implémente plusieurs interfaces en même temps doit d'abord hériter puis implémenter

(2) Syntaxe :

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 --- ---étend

Existe entre les classes et les interfaces : implémentations multiples------impléments

Existe entre les interfaces : héritage multiple ------étend

L'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)

Syntaxe de l'interface : (JDK8.0)

(1) Méthode par défaut :

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
d. La méthode par défaut peut être remplacée, mais le modificateur d'accès lorsqu'il est remplacé est public

(2) Méthode statique :


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 :



nom de la méthode du type de valeur de retour privé ( liste des paramètres formels) {

                                                                                  using   using   using   using          en utilisant   en utilisant             en utilisant en utilisant ‐                 .

(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

Classification des interfaces

Interface constante :

Il n'y a que des attributs et aucune méthode dans l'interface , et il y a peu d'applications

Interface vide :

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

Interface fonctionnelle :

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 ~)

Différences de syntaxe dinterface entre les versions Java et similitudes et différences entre les classes abstraites et les interfaces

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer