‫Dans la dernière vidéo, vous avez appris l'héritage et les bases de l'héritage,
‫mais maintenant, approfondissons un peu et examinons plusieurs mots clés qui seront pertinents en matière d'héritage.
‫Et ceux que nous allons examiner seront virtuels et le mot-clé override.
‫Maintenant, vous vous demandez peut-être pourquoi avons-nous des animaux ici à l'écran ?
‫Pourquoi cela montre-t-il un tas d'images d'animaux?
‫Eh bien, le fait est que nous allons implémenter une classe d'animaux qui nous permettra ensuite d'hériter
‫d'un animal qui sera la classe parente, qui possède quelques compétences, telles que que peut faire un animal ?
‫Il peut faire un son, il peut manger et il peut jouer.
‫C'est du moins ce que nous allons permettre à la classe animale de faire.
‫Et bien sûr, un animal peut faire beaucoup plus.
‫Nous allons lui donner quelques propriétés telles que le nom de propriété The Age, puis s'il a faim, par exemple.
‫Donc seulement s'il a faim, il mangera, sinon il ne mangera pas.
‫C'est donc vraiment l'idée de créer une classe d'animaux.
‫Et maintenant, bien sûr, vous pouvez déjà implémenter cette classe par vous-même.
‫Et puis nous allons utiliser l'héritage afin non seulement d'utiliser les mêmes méthodes et les mêmes propriétés, mais
‫aussi de les remplacer, en disant essentiellement, OK, le son qu'un animal qui est un chien va être différent du son que, par exemple,
‫un singe fait ou un singe fait ou une girafe fait ou quelque chose comme
‫ça.
‫OK, c'est donc essentiellement ce que nous allons implémenter.
‫Et en faisant cela, nous allons apprendre les différents mots-clés tels que virtuel et le mot-clé override.
‫Alors sortons et créons un nouveau projet pour cela.
‫Je vais utiliser une application console.
‫Je vais l'appeler démo de remplacement virtuel.
‫D'accord.
‫Comme petit défi pour vous, si vous voulez essayer cela par vous-même, veuillez écrire une classe
‫qui s'appellera animal et elle aura le nom de propriétés age a faim.
‫Ensuite, bien sûr, un constructeur, puis une méthode s'appelle faire des sons, manger et jouer.
‫OK, alors implémentez éventuellement tout cela si vous le souhaitez, car cela vous donnera juste un peu
‫de pratique pour créer toutes ces différentes méthodes.
‫Et puis nous verrons comment les modifier un peu pour pouvoir les utiliser correctement en héritage.
‫Très bien, alors j'espère que vous l'avez essayé, donc, bien sûr, nous pouvons utiliser Casey contrôlé pour créer une nouvelle
‫classe et je vais appeler celui-ci un animal.
‫Comme ça et maintenant, cette classe d'animaux aura quelques propriétés, comme je l'ai dit, donc la
‫propriété name, la propriété, ainsi que la propriété sa faim, puis un simple constructeur qui utilise toutes ces propriétés, vous pouvez voir
‫que nous 'utilise juste GetSet.
‫Soit dit en passant, si vous voulez créer une propriété très rapidement, entrez simplement prop double tap, puis entrez le
‫type, par exemple, chaîne, puis ici, par exemple, nom.
‫C'est ainsi que vous procéderiez très rapidement, sans avoir à taper plus que nécessaire.
‫D'accord.
‫Donc, ce sera notre constructeur ici avec le nom The Age et le a faim et vous pouvez voir qu'il a
‫faim n'est pas quelque chose que nous allons définir sur l'animal une fois que nous l'avons créé, mais
‫nous allons le définir sur dessiner au début par défaut.
‫Donc je le mets juste à sa faim par défaut.
‫OK, alors maintenant j'ai dit que je voulais avoir une méthode qui s'appellerait faire des sons.
‫Voyons donc cette méthode.
‫J'utilise donc une méthode virtuelle vide, je fais du son pour que les autres classes écrasent.
‫Je rends cette méthode virtuelle afin qu'elle puisse être remplacée par des classes qui héritent de animal.
‫Et nous verrons plus tard comment faire car le son que fait un animal dépendra fortement
‫de l'animal lui-même.
‫Donc, avoir faim est quelque chose que chaque animal partage parce que, eh bien, c'est comme ça que nous fonctionnons.
‫Nous avons besoin d'énergie et nous l'obtenons par la nourriture.
‫Et pour nous motiver à manger ou à manger, nous avons la sensation de faim.
‫Mais cette méthode virtuelle que nous avons ici fait que les sons ne doivent pas nécessairement être vides.
‫Voyons donc cette méthode de manger ici.
‫Et cette méthode manger sera aussi une méthode virtuelle.
‫Cela permet à nos sous-classes de surcharger cette méthode.
‫Donc, si nous voulons surcharger la méthode, nous pouvons le faire, mais nous n'y sommes pas obligés.
‫La fonctionnalité générale sera celle que vous pouvez voir ici.
‫Il vérifiera donc si l'animal a faim.
‫Si c'est le cas, alors il imprimera simplement le nom et dira qu'il mange et ensuite s'il n'a pas faim, il dira
‫que le nom n'a pas faim.
‫Le nom est donc, soit dit en passant, la propriété de notre animal.
‫Donc ce nom propriété de l'animal.
‫D'accord, ce sera donc notre méthode d'alimentation et nous allons également la rendre virtuelle.
‫Et puis une autre méthode virtuelle qui sera de jouer.
‫OK, donc cette méthode virtuelle comme celle qui dira essentiellement le nom joue sur la console.
‫Maintenant, nous utilisons des instructions de ligne droite très simples, cela pourrait être, bien sûr, beaucoup plus complexe.
‫OK, donc c'est juste pour simplifier le tout et le rendre plus compréhensible humainement, pour ainsi dire, parce que jouer et manger
‫et tout ça, c'est quelque chose que nous pouvons directement comprendre parce que nous l'avons vu dans nos
‫vies et nous l'avons fait nous-mêmes, ainsi que la lecture de données à partir d'une base de données ou quelque chose
‫comme ça.
‫Ce n'est pas quelque chose que nous voyons habituellement dans la vraie vie.
‫D'accord.
‫Alors maintenant, définissons nos classes qui seront dérivées d'animal, de sorte qu'elles hériteront de la classe animal.
‫Alors allons-y et utilisons le contrôle K et voyons notre monnaie commune.
‫Et cela ouvrira alors l'écran où nous pourrons alors créer une classe ou simplement créer une
‫classe.
‫Sinon, je vais donc créer une classe chien et cette classe héritera d'animal comme ça.
‫Maintenant, vous pouvez déjà voir qu'il n'y a aucun argument donné qui correspond au nom de paramètre formel requis
‫de la chaîne de nom d'animal.
‫Nous devons donc créer un constructeur ici.
‫Alors allons-y et créons un constructeur simple, qui suivra la même structure.
‫Il aura le nom et l'âge et il aura un nom de base bien utilisé afin que nous puissions utiliser le même constructeur que nous
‫avons défini cet animal.
‫Alors maintenant, je vais utiliser cette nouvelle propriété appelée Abie ou est heureux et ce sera un booléen.
‫Cela ne fera essentiellement que stocker si l'animal dans ce cas, le chien est heureux.
‫Il dira donc vrai si le chien est heureux et que les chiens sont des animaux heureux.
‫Donc par défaut, le chien sera content.
‫D'accord.
‫Remplaçons maintenant la méthode ITW.
‫OK, alors substituons simplement la méthode virtuelle, mangez, et donc nous utilisons ce mot-clé override.
‫OK, donc bien public, comme une méthode normale, mais nous ajoutons ce clavier de remplacement.
‫Donc, remplacez void ITW les mêmes deux ou similaires à ce que nous avions ici où nous avions également cette méthode.
‫Mais ici, nous avons utilisé un clavier virtuel.
‫Ainsi, ce clavier virtuel permet à nos sous-classes, nos classes héritières des enfants, d'utiliser le mot
‫de remplacement pour remplacer fondamentalement sa fonctionnalité.
‫Si vous voulez toujours appeler la fonctionnalité de base de la classe parente de la classe animale, dans
‫ce cas, nous devons utiliser la base DOT manger OK, la base dira OK appelé la méthode de la base et la base ira bien vous
‫voyez ici animal.
‫Ainsi, une fois que vous double-cliquez sur la base et qu'elle est mise en surbrillance, vous pouvez voir que cet animal est également mis en
‫surbrillance car l'animal est votre classe de base.
‫Si vous maintenez la touche de contrôle HELT et que vous cliquez sur la base, il passera à la classe animale car c'est
‫la classe de base.
‫Et vous avez pu voir qu'il y a trois références de notre classe de base et c'est ici, cette base, ainsi
‫que cette base et cet animal ici en haut.
‫OK, donc à ce stade, nous utilisons essentiellement notre classe de base ici, la fonctionnalité de classe de base.
‫Nous ne supprimons rien.
‫Donc, fondamentalement, nous disons qu'un chien est de la même manière que n'importe quel autre animal.
‫Donc rien de spécial ici.
‫Maintenant, examinons la méthode de création de son, car celle-ci va être assez différente car le chien
‫doit faire des sons corrects et sa façon de faire des sons va être woof.
‫Cela pourrait être aussi wouf ou qui pour quoi que ce soit.
‫Cependant, votre chien aime faire des sons.
‫Et c'est ainsi que dans mon cas, le chien fera un son.
‫Ce sera donc différent pour chaque animal.
‫OK, donc chaque animal fera une différence.
‫Et c'est pourquoi nous supplantons notre make sound.
‫Eh bien, avec bien, cela peut sembler ce que nous avions ici, nous le remplaçons par notre implémentation individuelle pour
‫notre chien.
‫Et maintenant, faisons la même chose avec le jeu, car le chien ne veut jouer que s'il est heureux, alors supposons que
‫c'est le cas.
‫Donc ici, si nous regardons le jeu, il est dit que le chien joue, mais je ne suis pas satisfait de ce résultat.
‫Disons qu'un chien ne jouera que si c'est un chien heureux.
‫Donc, ce que nous pouvons faire, c'est ignorer le jeu de mots et vérifier si le chien est heureux et ensuite seulement jouer.
‫Nous avons donc déjà remplacé la fonctionnalité animale de base par la fonctionnalité.
‫Eh bien, avec notre propre fonctionnalité pour le chien ou notre fonctionnalité unique pour le chien où nous avons ajouté
‫une condition.
‫Mais cela pourrait être n'importe quoi.
‫Vous n'êtes pas limité à une condition.
‫Cela pourrait être comme un tout autre type de mise en œuvre.
‫Vous n'avez même pas besoin d'utiliser le jeu de base, vous êtes donc totalement libre d'utiliser ce que vous voulez.
‫Par exemple, dans la méthode make sound, vous pouvez voir que nous n'utilisons pas le make sound de base car, eh bien, dans
‫la méthode make sound, il n'y a rien à appeler.
‫Il n'y a donc rien d'intéressant ici.
‫Mais même s'il y en avait, nous n'avons pas besoin d'appeler les bases ou le jeu de base.
‫Nous pourrions implémenter quelque chose de complètement différent ici si nous le voulons.
‫OK, ce sera donc notre chien.
‫Maintenant, enregistrons ces deux classes et travaillons avec elles dans notre fichier CSS de programme.
‫OK, alors voici tout d'abord, créez un chien comme donc je vais appeler le chien, qui sera un
‫nouveau chien.
‫Qui portera le nom de Siff et le chien aura 50 ans, donc joli vieux chien et maintenant.
‫Nous pouvons écrire quelque chose comme afin que nous puissions accéder à la propriété du chien comme une ligne rouge, le nom du
‫chien, afin que nous puissions obtenir le nom du chien et l'âge du chien en utilisant chien, nom de chien et point de chien h.
‫Et puis on peut, par exemple, jouer et manger.
‫OK, faisons ça très vite, jouer au chien, manger le chien.
‫Alors exécutons ceci.
‫Et on pouvait voir des civils, 15 ans, des surfeurs jouer, des surfeurs manger.
‫OK, alors jouez et cela a très bien fonctionné.
‫Bien sûr, nous pouvons également utiliser falsifié.
‫Et faire du son.
‫Donc, cela ferait alors le bruit du chien.
‫Exécutons ceci.
‫Et vous voyez que le stock dit boîte.
‫D'accord.
‫Récapitulons donc rapidement et voyons en quoi cela est différent de l'exemple que nous avons eu dans
‫la dernière vidéo, nous avons donc notre classe de base et sa classe de base a quelques propriétés, et elle a également
‫quelques méthodes de fonctions, donc parler.
‫Donc ici pour faire du son, par exemple, la méthode AED et ainsi de suite, et
‫nous les rendons virtuels en ajoutant le mot-clé virtual afin de les rendre modifiables ou surexcitables dans la classe héritante.
‫Dogs déshérite donc une classe ou une sous-classe, et cette sous-classe nous permet désormais d'écraser une méthode spécifique de la
‫classe de base à l'aide du mot-clé override.
‫Alors ça va maintenant.
‫Remplacez la fonctionnalité afin qu'elle remplace la fonctionnalité ou le code de la méthode actuelle, sauf que vous,
‫bien sûr, utilisez l'espace que chacun.
‫Donc, ce qui va se passer, c'est qu'il appellera simplement la méthode mange de la classe de base, ce qui signifie du
‫parent.
‫Mais vous êtes libre d'implémenter votre propre code ici.
‫Vous n'avez pas besoin d'appeler la classe de base.
‫Vous pouvez, bien sûr, ajouter une condition pour que la fonctionnalité de la classe de base soit appelée dans une
‫condition spécifique.
‫Ou vous pouvez écrire le code que vous voulez dans vos méthodes d'écrasement, puis quelque chose d'autre est
‫différent.
‫Et c'est que nous ajoutons du code à notre constructeur ici pour notre.
‫Sous-clause, OK, donc ce chien de classe héritière.
‫Est-ce d'une part en utilisant les mêmes propriétés que notre classe de base, mais en même temps elle a sa propre
‫implémentation, que doit-il se passer une fois qu'un chien est créé ?
‫Donc une fois qu'un objet chien est créé et dans notre cas, c'est juste pour dire que le chien va être content.
‫Bon, c'est tout pour cette vidéo, on va s'intéresser beaucoup plus à l'héritage, bien sûr, car il y
‫a encore beaucoup à apprendre.
‫Alors rendez-vous dans la prochaine vidéo.