Il y a beaucoup de contenu dans cette section, et le fichier vidéo dépasse 4 Mo, donc le temps de téléchargement peut être un peu plus long. Veuillez patienter un peu plus longtemps.
Il y a beaucoup de contenu dans cette section, car il y a beaucoup de contenu. en héritage uniquement, j'en profiterai donc pour avoir utilisé toutes les choses précédentes, ce qui est considéré comme une critique. Certaines choses dans cette section sont expliquées encore et encore deux ou trois fois. Le but est d'espérer que tout le monde puisse le faire. maîtrisez-les. C’est la chose la plus importante ! ! Si vous n'êtes pas sûr du contenu de l'évaluation dans cette section, veuillez lire les chapitres pertinents précédents ! !
Nous parlons ensuite de l'héritage. Pour comprendre l'héritage, nous devons d'abord savoir pourquoi l'héritage est nécessaire ?
Supposons qu'une classe que nous avons créée pour le système de nouvelles dispose déjà d'une connexion à la base de données, d'une initialisation et de fonctions telles que la requête, l'ajout, la suppression, la modification, etc. .!
Ensuite, nous devrons certainement effectuer différentes requêtes, modifications, etc. Par exemple, la colonne d'actualités et la gestion des utilisateurs doivent toutes deux utiliser les classes que nous avons mentionnées plus tôt, mais la différence est qu'elles nécessitent des résultats différents. ce qu'il faut faire? Il existe deux façons. La première consiste à créer des classes pour eux séparément et à copier deux fois la classe de connexion à la base de données. Je pense que les inconvénients de cela ne doivent pas être mentionnés. Ensuite, nous pouvons également appeler fréquemment les membres de la classe de base de données pour atteindre l'objectif. cela arrive, notre code ne serait-il pas très volumineux ? Savez-vous pourquoi les pilules amaigrissantes sont si populaires ?
Déprimé, que dois-je faire ? C'est simple, nous utilisons l'héritage pour le compléter. Décrivons brièvement l'héritage. C'est que la sous-classe (classe dérivée) a toutes les caractéristiques de la classe parent (classe de base), et a en même temps ses propres caractéristiques. Je pense que cela devrait être clair !
Remarque : l'héritage .Net permet uniquement l'héritage directement d'une autre classe, et ne peut pas hériter de plusieurs classes en même temps. Il semble qu'il ne puisse y avoir qu'un seul père (en fait, ce n'est pas absolu, haha, c'est vraiment intéressant de penser à Microsoft, nous pouvons toujours utiliser des interfaces pour implémenter l'héritage multiple), mais l'héritage multi-niveaux est possible, par exemple, il peut y avoir un père et un grand-père en haut, et un fils et un petit-fils en bas.
Jetons un coup d'œil à quelque chose d'intuitif :
Si nous regardons l’image ci-dessus, nous constaterons que les niveaux inférieurs sont plus spécifiques. Nous pouvons alors comprendre que l'humain est la classe de base (classe parent) de toutes les classes, et que les classes suivantes sont des classes dérivées (sous-classes). En fait, nos sous-catégories suivantes peuvent être étendues vers le bas.
En C#, une classe dérivée hérite des membres de sa classe de base directe : méthodes, champs, propriétés, événements et indicateurs d'index. Une classe dérivée hérite implicitement de tous les membres de la classe de base directe, à l'exception des constructeurs et des destructeurs.
2. L'héritage en C# est conforme aux règles suivantes :
(Ce n'est pas un résumé de ma part, je suis allé en ligne et je l'ai copié de quelqu'un d'autre. Haha !!)
1. L'héritage est transitif. Si C est dérivé de B et que B est dérivé de A, alors C hérite non seulement des membres déclarés dans B, mais hérite également des membres de A. La classe Object sert de classe de base pour toutes les classes.
2. Les classes dérivées doivent être des extensions des classes de base. Une classe dérivée peut ajouter de nouveaux membres, mais ne peut pas supprimer les définitions des membres hérités.
3. Les constructeurs et les destructeurs ne peuvent pas être hérités. De plus, d'autres membres peuvent être hérités quelles que soient les méthodes d'accès définies pour eux. La manière dont les membres sont accessibles dans la classe de base peut uniquement déterminer si les classes dérivées peuvent y accéder.
4. Si une classe dérivée définit un nouveau membre portant le même nom qu'un membre hérité, elle peut écraser le membre hérité. Mais cela ne signifie pas que la classe dérivée a supprimé ces membres, c'est simplement que ces membres ne sont plus accessibles. (Il convient de noter que si un attribut ou une méthode a le même nom mais une signature différente, il ne s'agit pas d'un écrasement, mais d'une surcharge.)
5. Une classe peut définir des méthodes virtuelles, des attributs virtuels et des indicateurs d'index virtuels, ainsi que leur dérivation. Les classes peuvent surcharger ces membres afin que les classes d'implémentation puissent présenter un polymorphisme.
6. Les classes dérivées ne peuvent hériter que d'une seule classe et plusieurs héritages peuvent être obtenus via des interfaces.
Dans une sous-classe, nous pouvons accéder aux membres de la classe de base via le mot-clé base :
appeler des méthodes sur la classe de base qui ont été remplacées par d'autres méthodes.
Spécifie le constructeur de classe de base qui doit être appelé lors de la création d'une instance d'une classe dérivée.
L'accès à la classe de base n'est possible que dans les constructeurs, les méthodes d'instance ou les accesseurs de propriétés d'instance.
C'est une erreur d'utiliser le mot-clé base à partir d'une méthode statique.
Revisiter les modificateurs d'accès
Les modificateurs d'accès sont des mots-clés qui spécifient l'accessibilité d'un membre ou d'un type déclaré. Il existe quatre modificateurs d'accès dans l'héritage de classe : public protégé interne privé. Utilisez ces modificateurs d'accès pour spécifier les cinq niveaux d'accessibilité suivants : public protégé interne interne protégé privé.
Signification de l’accessibilité déclarée
L'accès du public est illimité.
l'accès protégé est limité à la classe conteneur ou aux types dérivés de la classe conteneur.
L'accès interne est limité au projet en cours.
L'accès interne protégé est limité à l'élément ou au type actuel dérivé de la classe conteneur.
l'accès privé est limité au type conteneur.
Regardons un exemple ci-dessous, restons sur le sujet des personnes
Voir les commentaires pour tous les codes !!