English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Aujourd'hui, je vais parler de mon compréhension de la classe abstraite et de l'interface en Java, avec des contenus de référence :
一、抽象类
1Définition :
public abstract class NomClasse{}
En Java, tous les objets sont décrits par des classes, mais pas toutes les classes sont utilisées pour décrire des objets. Ce que je comprends par la classe abstraite, c'est une extraction élevée des parties communes des mêmes choses, cette partie commune inclut les attributs et les comportements. Par exemple, les vaches, les moutons et les porcs ont des attributs communs tels que des poils et des comportements communs tels que l'allaitement. Alors nous pouvons abstractionner la partie commune en une classe de mammifères, contenant des attributs de poils et des comportements d'allaitement. Lorsque les vaches, les moutons et les porcs héritent de la classe de mammifères, ils auront également la fonction d'allaitement. Concernant la manière dont cette fonction est réalisée, cela doit être réalisé par soi-même.
2Caractéristiques :
(1Les méthodes abstraites doivent être public ou protected, sinon elles ne peuvent pas être héritées par les sous-classes. Par défaut, c'est public.
(2Les classes marquées par le mot-clé Abstract sont des classes abstraites ;
(3Les méthodes abstraites ne peuvent pas avoir d'implémentation, sinon le compilateur renverra une erreur ;
(4Les classes abstraites peuvent définir leurs propres variables membres et méthodes membres ;
(5Lorsque la sous-classe hérite de la classe abstraite, elle doit réaliser toutes les méthodes abstraites de la classe abstraite ; sinon, la sous-classe doit également être définie comme une classe abstraite ;
(6Les classes abstraites ne peuvent pas être instanciées.
3Vérification de la validité des dispositions ci-dessus
C'est un tableau de validation que j'ai édité dans Word, que j'ai découpé en image et mis ici :
D'après les résultats de la validation de la figure, toutes ces théories sont correctes
Deuxième partie : Interface
1Définition :
public interface NomInterface{}
Les interfaces sont utilisées pour fournir des méthodes. Selon ma compréhension, elles représentent une extraction élevée des comportements communs de plusieurs classes, par exemple, tous les animaux ont des comportements communs comme manger et dormir. Alors nous pouvons extraire ces deux comportements et les encapsuler dans une interface. Lorsqu'un animal a besoin d'exécuter ce comportement, il suffit de faire appel à cette interface, puis de réaliser l'implémentation spécifique dans sa propre classe. Cette compréhension semble être similaire à celle de la classe abstraite, donc regardons l'exemple suivant. Si ces deux comportements sont placés dans une classe abstraite, mais que cette classe abstraite a également un comportement de grimper, alors lorsque le serpent, par exemple, hérite de cette classe, il mettra en œuvre les trois méthodes : manger, dormir et grimper. En conséquence, il aura les fonctions de manger et de dormir ; mais si un animal volant comme l'oiseau hérite de cette méthode, il aura également les fonctions de manger, dormir et grimper, ce qui est évidemment incorrect. Mais lorsqu'ils héritent de l'interface qui n'a que manger et dormir, ils ont les fonctions de base de manger et dormir. En ce qui concerne grimper et voler, ils peuvent être abstractionnalisés et placés dans une classe abstraite, hérités selon les besoins et implémentés selon les besoins.
2Caractéristiques :
(1Les interfaces peuvent avoir leurs propres variables membres, mais elles sont implicitement spécifiées comme public static final, et ne peuvent être que public static final. Tous les méthodes dans une interface sont des méthodes abstraites, et sont implicitement spécifiées comme public abstract.
(2)Les interfaces ne définissent que des méthodes abstraites, sans implémentation spécifique ;
(3)Les classes implémentant l'interface doivent réaliser tous les méthodes définies dans l'interface ;
3、vérifier si les théories ci-dessus sont correctes
De même, vérifier que les théories ci-dessus sont correctes !
Troisième partie, la différence entre les classes abstraites et les interfaces :
1、une classe abstraite peut avoir ses propres méthodes membres et leurs implémentations spécifiques ; une interface ne peut contenir que des méthodes abstraites ;
2、une classe abstraite peut contenir divers types de variables membres ; les variables membres d'une interface doivent être public static final ;
3、une classe ne peut hériter qu'une seule classe abstraite, mais peut implémenter plusieurs interfaces ;
4、une classe abstraite peut contenir des blocs de code statiques et des méthodes statiques ; une interface ne peut pas définir de blocs de code statiques et de méthodes statiques ;
Vérifier qu'une classe ne peut hériter qu'une seule classe abstraite, mais peut implémenter plusieurs interfaces
Tout d'abord, définir deux classes abstraites : une classe de mammifères Mummals, une classe de déplacement Crawler
/** * @createtime 2017Année3Mois17Matin10:33:27 * @description Classe des mammifères */ public abstract class Mammals { public String foods; public abstract void nurse(); public void eat(String food){ this.foods = food; System.out.println("Manger"+foods); } }
/** * * @createtime 2017Année3Mois17Matin11:23:09 * @description Définir une classe abstraite--Classe de déplacement */ public abstract class Crawler { public abstract void crawl(); }
Ensuite, définir deux interfaces : l'une est l'interface de base BaseAction ; l'autre est l'interface spéciale SpecialAction
/** * * @createtime 2017Année3Mois17Matin11:03:42 * @description Définir une interface nommée interface d'action de base */ public interface BaseAction { public String name = ""; public void eat(); public void sleep(); }
/** * @createtime 2017Année3Mois17Matin11:24:56 * @description Définir une interface pour réaliser des comportements spéciaux */ public interface SpecialAction { public void study(); }
Ensuite, définir une classe de base People, héritant de la classe Mummals, implémentant l'interface BaseAction et l'interface SpecialAction
/** * @createtime 2017Année3Mois17Matin11:25:48 * @description Définir une classe ordinaire--Les humains, héritent de la classe Mammals, et implémentent les interfaces de base et spéciales */ public class People extends Mammals implements BaseAction, SpecialAction {}} @Override public void study() { // TODO Auto-bouchon de méthode généré } @Override public void eat() { // TODO Auto-bouchon de méthode généré } @Override public void sleep() { // TODO Auto-bouchon de méthode généré } @Override public void nurse() { // TODO Auto-bouchon de méthode généré } }
Il est possible pour une sous-classe d'implémenter plusieurs interfaces
Finalement, la classe de base People hérite à la fois de la classe Mummals et de la classe Crawler
/** * @createtime 2017Année3Mois17Matin11:25:48 * @description Définir une classe ordinaire--Les humains, héritent de la classe Mammals, et implémentent les interfaces de base et spéciales */ public class People extends Mammals, Crawler { @Override public void nurse() { // TODO Auto-bouchon de méthode généré } }
Résumé
C'est tout pour l'interprétation personnelle de l'auteur sur l'abstract class et l'interface en Java, j'espère qu'il sera utile à tout le monde. Les amis intéressés peuvent continuer à consulter notre site :
Exemples de code de héritage et d'abstraction des beans dans Spring
Principes de base d'Hibernate et aperçu des interfaces
Interface (interface) en Java et exemples d'utilisation
Bienvenue pour laisser des commentaires si vous avez des suggestions. Merci d'appuyer sur notre site Web !
Déclaration : le contenu de cet article est tiré du réseau, la propriété intellectuelle appartient aux auteurs respectifs, le contenu est apporté par les utilisateurs d'Internet de manière spontanée et est téléversé spontanément. Le site Web ne possède pas de propriété intellectuelle, n'a pas été traité par l'homme, et n'assume pas de responsabilité juridique. Si vous trouvez du contenu présumé violer les droits d'auteur, vous êtes invité à envoyer un e-mail à : notice#oldtoolbag.com (veuillez remplacer # par @ lors de l'envoi d'un e-mail pour signaler une violation, et fournir des preuves pertinentes. Une fois confirmée, le site supprimera immédiatement le contenu présumé être en violation de copyright.