Aujourd'hui, je parlerai de ma propre compréhension des cours abstraits et des interfaces en Java, y compris le contenu de référence:
1. Classe abstraite
1. Définition:
Nom de classe de classe abstrait public {}
Tous les objets de la langue Java sont décrits par les classes, mais toutes les classes ne sont pas utilisées pour décrire les objets. La classe abstraite que je comprends est en fait un degré élevé d'extraction des parties publiques du même type de choses, qui comprennent des attributs et des comportements. Par exemple, les bovins, les moutons et les porcs ont tous leurs attributs publics, et les comportements publics allaitent tous, afin que nous puissions résumer la partie publique dans un mammifère, contenant des attributs, des cheveux et des comportements. Lorsque le bétail, les moutons et les porcs héritent du mammifère, ils ont également la fonction de l'allaitement. Quant à la façon de remplir cette fonction, ils doivent l'implémenter eux-mêmes.
2. Caractéristiques
(1) La classe modifiée par le mot-clé abstrait est une classe abstraite;
(2) les classes contenant des méthodes abstraites doivent être des classes abstraites, mais les classes abstraites ne contiennent pas nécessairement des méthodes abstraites; et les méthodes abstraites doivent être publiques ou protégées, sinon elles ne peuvent pas être héritées par les sous-classes. La valeur par défaut est publique.
(3) il ne peut y avoir de mise en œuvre dans la méthode abstraite, sinon la compilation sera signalée;
(4) Vous pouvez définir vos propres variables de membres et méthodes membres dans une classe abstraite;
(5) Lorsqu'une sous-classe hérite d'une classe abstraite, toutes les méthodes abstraites de la classe abstraite doivent être implémentées, sinon la sous-classe doit également être définie comme une classe abstraite;
(6) Les classes abstraites ne peuvent pas être instanciées.
3. Vérifiez si les dispositions ci-dessus sont effectivement comme indiquées
Ceci est un tableau de vérification que j'ai édité dans Word, et je l'ai coupé en une image et je l'ai mis ici:
À en juger par les résultats de la vérification dans la figure ci-dessus, ces théories sont correctes
2. Interface
1. Définition:
Nom de l'interface d'interface publique {}
L'interface est utilisée pour fournir des méthodes. Selon ma compréhension, il s'agit d'une extraction de haut niveau des comportements publics de plusieurs classes. Par exemple, le comportement public de tous les animaux est à manger et à dormir. Ensuite, nous pouvons extraire et encapsuler ces deux comportements dans une seule interface. Lorsqu'un animal doit effectuer ce comportement, appelez simplement l'interface, puis complétez l'implémentation spécifique dans sa propre classe. Cette compréhension ne semble pas être différente des cours abstraits, alors jetons un coup d'œil à l'exemple suivant. Si ces deux comportements sont placés dans une classe abstraite, mais il y a aussi un comportement rampant dans la classe abstraite. À l'heure actuelle, lorsqu'un reptile, comme un serpent, hérite de cette classe, il réalisera les trois méthodes de manger, de dormir et de ramper, il a donc les fonctions de manger, de dormir et de ramper; Mais si un animal d'une classe de vol est comme un oiseau, lorsqu'il hérite de cette méthode, il a également les fonctions de manger, de dormir et de ramper. Il est évident que ramper n'est pas la fonction dont elle a besoin, ce qui est un peu incohérence. Cependant, lorsqu'ils n'héritent que de l'interface de manger et de dormir, ils ont les fonctions de base de manger et de dormir. En ce qui concerne l'escalade et le vol, ils peuvent être abstraits et placés dans une classe abstrait, hériter de la demande et réaliser les fonctions dont ils ont besoin à la demande.
2. Caractéristiques:
(1) L'interface peut avoir ses propres variables de membres, mais elles seront implicitement spécifiées comme finale statique publique, et ils ne peuvent être que la finale statique publique. Toutes les méthodes de l'interface sont des méthodes abstraites et seront implicitement spécifiées comme abstrait public.
(2) Seules les méthodes abstraites sont définies dans l'interface et il n'y a pas de mise en œuvre concrète;
(3) La classe qui implémente une interface doit implémenter toutes les méthodes définies dans l'interface;
3. Vérifiez si la théorie ci-dessus est correcte
De même, les théories ci-dessus sont toutes correctes!
3. La différence entre les classes abstraites et les interfaces:
1. La classe abstraite peut avoir ses propres méthodes de membres et leurs implémentations spécifiques; L'interface ne peut contenir des méthodes abstraites;
2. Les classes abstraites peuvent contenir divers types de variables membres; Les variables membres dans les interfaces ne peuvent être que la finale statique publique;
3. Une classe ne peut hériter qu'une seule classe abstraite, mais peut implémenter plusieurs interfaces;
4. Les classes abstraites peuvent contenir des blocs de code statique et des méthodes statiques; Les blocs de code statique et les méthodes statiques ne peuvent pas être définis dans l'interface;
Vérifiez qu'une classe ne peut hériter qu'une seule classe abstraite, mais peut implémenter plusieurs interfaces
Tout d'abord, définissez deux classes abstraites: un mammifère de mamans et une classe de reptiles de robot
/ ** * @createetime 17 mars 2017 à 10:33:27 AM * @Description Mammals * / public abstrait class Mammals {public String Foods; public abstract void infirmier (); public void Eat (String Food) {this.foods = food / ** * * @createtime 17 mars 2017 à 11:23:09 AM * @Description Définir une classe abstraite - Crawler Class * / Public Abstract Class Crawler {public abstract void crawl ();}Deuxièmement, définissez deux interfaces: l'une est l'interface de base de base de base; L'autre est l'interface spéciale spéciale spéciale
/ ** * * @createtime 17 mars 2017 à 11:03:42 AM * @Description Définir une interface nommée Basic Behavior * / Public Interface BaseAction {public String Name = ""; public void Eat (); public void sleep ();}; / ** * @createetime 17 mars 2017 à 11:24:56 AM * @Description Définissez une interface pour implémenter un comportement spécial * / Interface publique SpecialAction {public void Study ();}Ensuite, définissez une classe de base, hériter de la classe Mummals et implémentez l'interface de base et l'interface spéciale
/ ** * @CreateTime 17 mars 2017 à 11:25:48 AM * @Description Définir une classe commune - Human, Hériter Mammifles, implémenter des interfaces de base et des interfaces spéciales * / classe publique Les gens étendent les mammifères implémentent BaseAet Méthode générée automatiquement Stub} @Override public void sleep () {// TODO Méthode générée automatiquement Stub} @Override public void infirmière () {// TODO Méthode générée automatiquement Stub}}On peut voir qu'une sous-classe peut implémenter plusieurs interfaces.
Enfin, laissez la classe de base que les gens hériter de la classe Mummals et de la classe Crawler en même temps
/ ** * @CreateTime 17 mars 2017 à 11:25:48 AM * @Description Définir une classe commune - Human, hériter des mammifères, implémenter des interfaces de base et des interfaces spéciales * / classe publique les gens étendent les mammifères, le Crawler {@Override public Void Nurse (// ToDo Mammals Stub}}} publicRésumer
Ce qui précède est tout le contenu de cet article sur la discussion brièvement de la compréhension personnelle des classes et interfaces abstraits de Java. J'espère que ce sera utile à tout le monde. Les amis intéressés peuvent continuer à se référer à ce site:
Exemples d'hérédité et de code abstrait des haricots au printemps
Introduction aux idées et interfaces principales d'Hibernate
Exemples d'interface et de méthodes d'utilisation en Java
S'il y a des lacunes, veuillez laisser un message pour le signaler. Merci vos amis pour votre soutien pour ce site!