‫Bienvenue à nouveau et cette vidéo, nous allons couvrir les classes abstraites et donc nous allons créer un tas de
‫nouvelles classes, et il est important que vous compreniez le concept de classes ainsi que l'héritage et le polymorphisme,
‫car nous allons nous appuyer sur cela .
‫Et nous commençons par créer une nouvelle classe.
‫Créons donc une nouvelle classe ici.
‫Nous allons projeter en classe et je vais créer une classe de forme et ce sera la forme.
‫Maintenant, l'idée est que nous voulons créer une classe dont nous ne voulons créer aucun objet.
‫Nous ne voudrons donc pas instancier des formes.
‫Nous voulons instancier des objets qui sont des types de formes mais pas des formes elles-mêmes.
‫Ainsi, par exemple, une forme serait un cube ou une forme serait une sphère.
‫Et j'utilise des formes 3D ici.
‫Droit.
‫Formes tridimensionnelles.
‫Et bien, nous allons créer des classes qui hériteront de shape.
‫Mais nous voulons nous assurer que la forme est une classe abstraite réelle, ce qui signifie
‫que nous ne pourrons pas en créer un objet, mais nous utiliserons ses systèmes ou ses méthodes et ses propriétés.
‫Alors, commençons.
‫Rendre cette forme abstraite, tout d'abord.
‫Et pour ce faire, nous pouvons utiliser le mot-clé résumé.
‫Alors maintenant, c'est une classe abstraite.
‫Maintenant, allons de l'avant avec notre programme, ce cas, et voyons qu'il s'agit d'une classe abstraite réelle,
‫alors créons une forme de forme égale à une nouvelle forme.
‫Ainsi, lorsque nous essayons de faire cela, vous pouvez voir que cela ne peut pas créer une instance d'une classe abstraite ou d'une forme
‫d'interface.
‫Et comme notre forme est une classe abstraite, nous ne pouvons pas en créer des objets.
‫Nous ne pouvons donc pas l'instancier.
‫C'est un aspect important ici.
‫D'accord.
‫Nous aurons besoin d'une bonne équipe.
‫Et je vais juste créer cette propriété appelée name.
‫La forme a donc besoin d'un nom et nous avons un centre garanti pour créer cela.
‫J'utilise juste un accessoire, puis j'appuie deux fois pour créer une nouvelle propriété.
‫OK, donc nous l'avons vu dans les vidéos.
‫Maintenant, je veux avoir une méthode et la méthode que je veux utiliser sera une méthode virtuelle, le vide virtuel.
‫Obtenez des informations.
‫Ce clavier virtuel que vous voyez ici permet de modifier un index de propriété de méthode ou un événement déclaré
‫dans la classe de base et permet d'être écrasé dans la classe dérivée.
‫Cela nous permet donc de remplacer la méthode get infl dans une classe de conduite.
‫D'accord.
‫C'est donc l'idée derrière ce clavier virtuel ici.
‫Alors ajoutons simplement une déclaration ici, donc afin d'avoir le contrôle sur la ligne droite et ici, je veux juste
‫écrire quelque chose comme.
‫Il s'agit d'un suivi du nom de la forme.
‫OK, donc c'est un nom.
‫Et maintenant, l'idée derrière cela est que je veux avoir une nouvelle ligne et ensuite je veux avoir la déclaration.
‫Il s'agit d'un suivi du nom de la forme, car chaque fois que nous créons une forme, nous pouvons définir le nom
‫de celle-ci.
‫Nous avons donc un vide virtuel maintenant.
‫Maintenant, nous pouvons également ajouter une méthode abstraite.
‫Faisons maintenant ce double volume abstrait.
‫Donc, ce que je veux calculer, c'est le volume d'une forme.
‫Maintenant, ici, je ne vais pas implémenter cette méthode.
‫C'est une distinction importante ici.
‫Je ne vais pas l'appliquer ici.
‫Je vais juste dire, d'accord, chaque fois qu'une classe veut hériter de moi, elle doit implémenter une fonctionnalité pour
‫la méthode de volume.
‫D'accord.
‫Maintenant, nous pourrions, bien sûr, appeler celui-ci, calculer le volume de choses comme ça.
‫Mais je vais juste appeler ce volume.
‫D'accord.
‫Alors maintenant que nous avons préparé notre classe de forme, nous pouvons l'enregistrer et nous pouvons créer une nouvelle classe.
‫Donc, la prochaine classe que je vais créer est la classe cube.
‫Je vais donc juste créer un cube, qui est une forme 3D.
‫Alors maintenant, mon cube héritera de la forme.
‫Maintenant, si je le fais, vous pouvez voir que j'obtiens une erreur ici et dit que Cube n'implémente pas les
‫nombres abstraits hérités, façonne ce volume.
‫Montrez donc que les correctifs potentiels sont corrects.
‫Implémenter la classe abstraite.
‫Si je le fais, vous pouvez voir qu'il implémente cette méthode de volume avec une instruction override.
‫Il dit donc qu'il prévaut sur tout ce qui a été défini dans la forme et comme forme en tant que classe abstraite.
‫Et cette méthode est abstraite.
‫Comme vous pouvez le voir, il n'y a pas de méthode, mon pote.
‫C'est vraiment juste la déclaration de la méthode.
‫Alors maintenant, nous pouvons aller de l'avant et bien sûr, mettre en œuvre quelque chose.
‫Vous pouvez voir que nous lançons une erreur ici, une exception non implémentée.
‫Bien sûr, nous voulons implémenter quelque chose ici.
‫Implémentons donc un calcul de volume dans notre classe de cube.
‫Maintenant, pour le calculer, nous aurons besoin d'une propriété qui sera une longueur.
‫Je vais donc juste créer cette nouvelle propriété appelée length ici.
‫Et je vais aussi ajouter un constructeur.
‫Alors public Kube.
‫Et chaque fois que je veux créer un cube, je dois passer une longueur.
‫C'est donc ce que je dis ici.
‫Et pendant que j'y suis, je vais aussi ajouter un nom.
‫Donc, comme vous pouvez le voir, nous utilisons l'héritage ici car le nom n'est pas défini à Cuba.
‫Il est défini dans la forme.
‫OK, je peux donc simplement définir le nom de la variable ici et je vais définir la longueur sur la longueur qui m'a
‫été transmise.
‫Ainsi, la longueur de la propriété sera la même que la longueur qui est passée une fois que nous avons créé un objet de
‫type.
‫Q C'est donc l'idée derrière cette variable.
‫Et ensuite, nous pouvons implémenter cette méthode de volume et nous pouvons simplement retourner quelque chose.
‫Il doit donc retourner un double.
‫Droit.
‫Nous devons donc retourner quelque chose qui est basé sur le double et afin de calculer le volume d'un cube et j'utilise
‫ici un cube qui a la même longueur de tous les côtés.
‫Donc je vais juste dire la longueur à la puissance trois.
‫Donc Magpul longueur trois, cela signifie qu'il va calculer la longueur, les temps, la longueur, les fois la longueur.
‫D'ACCORD.
‫C'est donc ce que sera notre volume et il renverra cette valeur.
‫Maintenant, nous pouvons aller de l'avant et nous pouvons également implémenter cette méthode appelée get info.
‫Donc, ce que je vais faire, c'est que je vais simplement le copier et je vais maintenant ne pas utiliser le
‫mot-clé virtuel, mais remplacer le mot-clé parce que je veux remplacer pour obtenir la méthode d'information de mon parent.
‫Maintenant, ici, si je le fais, ce que je peux faire, c'est que je peux aussi appeler ils obtiennent des informations de ma classe de base, ce qui
‫signifie que dans ce cas, il va également appeler obtenir des informations de la forme qui dit, OK, donc ça va appelez
‫cette méthode ici.
‫Cela signifie donc que cela exécutera ce code, puis exécutera le code que nous ajoutons au bas de celui-ci.
‫Donc je vais ajouter un petit texte ici et ça va dire que le cube a une longueur de et ensuite je vais passer
‫la longueur ici.
‫Donc la longueur, bien sûr, je pourrais aussi calculer le volume ici, mais je vais vous laisser cela.
‫Alors si vous voulez le faire, n'hésitez pas.
‫D'accord.
‫C'est ainsi que nous pouvons.
‫Allez-y et créez une classe qui héritera d'une autre classe abstraite.
‫Maintenant, comme un petit défi pour vous, et je vais juste mettre la vidéo en pause une fois, vous devriez
‫commencer par un défi.
‫Donc, l'idée est maintenant de créer une autre forme, qui est l'endroit où dans notre classe, qui hérite de la forme et
‫la forme devrait être une sphère maintenant implémenter le même type de fonctionnalité que vous pouvez voir ici
‫pour Sphere.
‫D'accord.
‫Bonne chance.
‫Publiez une vidéo et essayez de le faire.
‫D'accord.
‫Alors j'espère que vous l'avez essayé.
‫Je vais créer une nouvelle classe ici et je vais appeler cette sphère de classe ainsi.
‫Oui.
‫Et cette classe devrait hériter de shape.
‫Et bien sûr, je dois implémenter ma classe abstraite, ce qui signifie que je dois implémenter cette méthode
‫de volume maintenant ici, je peux, bien sûr, à nouveau calculer où avoir une propriété.
‫Mais cette fois, une propriété utile ne serait pas la longueur, mais ce serait en fait le rayon car
‫nous calculons le volume différemment dans une sphère que dans un cube.
‫Et nous ne l'avons pas fait en forme parce qu'une forme par elle-même ne peut pas avoir de volume.
‫Droit.
‫Si ce n'est pas défini comme une guerre, nous ne pouvons pas en calculer le volume, disons, parce que nous ne savons pas de quelle
‫forme il s'agit.
‫Droit.
‫C'est pourquoi nous avons besoin de clauses qui héritent de shape et qui implémentent la fonctionnalité.
‫Alors maintenant, je peux aller de l'avant et créer un constructeur, une sphère publique et un rayon double.
‫Nous avons donc besoin d'un rayon, puis nous pouvons continuer et définir le nom de la sphère, qui devrait
‫être sphere, et nous devrions avoir une valeur de propriété de rayon.
‫Nous attribuons donc le rayon qui nous est transmis car la propriété radius a une valeur.
‫D'accord.
‫Maintenant que nous avons cela, nous pouvons calculer le volume.
‫Alors maintenant, au lieu de lancer une exception ici, je veux calculer le volume de ma sphère.
‫Et pour ce faire, j'ai besoin de PI et j'ai besoin du calcul suivant.
‫Alors calculez ce rayon de Powell à la puissance trois et tout cela multiplié par trois divisé par ou avec quatre divisé
‫par trois.
‫D'accord.
‫C'est ainsi que nous calculons le volume et maintenant nous pouvons aller de l'avant et également implémenter pour obtenir la méthode Infl.
‫Alors je vais juste le copier en quatre depuis mon cube et faire paresseux.
‫Et donc copiez cette partie ici et implémentez la même chose.
‫Nous avions donc l'habitude de surcharger à nouveau le mot-clé.
‫C'est exactement le même nom que dans la classe de forme.
‫Et nous utilisons ici les informations de Baskette pour appeler quelle que soit la méthode utilisée ici.
‫Donc, quel que soit le corps de la méthode là-dedans.
‫Et puis au lieu de passer la longueur ou de dire quelque chose sur la longueur, nous allons dire
‫quelque chose sur le rayon et le cube.
‫Dans ce cas, la sphère a un rayon de rayon.
‫D'accord.
‫Maintenant que nous avons tout cela, nous pouvons maintenant créer des objets de toutes
‫ces différentes classes.
‫Je ne vais donc pas dire bonjour au monde ici.
‫Au lieu de cela, je vais créer un tas de formes.
‫Alors je vais dire, OK, s'il vous plaît, donnez-moi un tableau de formes et ce sera une nouvelle sphère avec un rayon de quatre
‫et un nouveau cube avec un rayon de trois.
‫Et dans ce cas, en fait, c'est la longueur de trois parce que Cube n'a pas de rayon, il a une
‫longueur.
‫Et puis je veux exécuter quelque chose pour chacune des formes jusqu'à présent, forme dans les formes.
‫Je veux.
‫Parcourez-les tous et ce cas, juste les deux.
‫Mais ce que je veux avoir, ce sont des infos façonnées.
‫Donc, obtenir des informations devrait être appelé.
‫Et je veux écrire quelque chose comme ça.
‫Et dans ce cas, zéro.
‫Sera le nom et ensuite je veux montrer le volume, donc je veux que le nom ait un volume de.
‫Et puis, bien sûr, je veux connaître le volume de cette pièce que nous regardons,
‫alors façonnez ce nom et façonnez ce volume.
‫OK, donc ici, il est important que nous appelions la méthode du volume, n'est-ce pas ?
‫Ce n'est pas juste un.
‫Propriété, nous avons donc le contrôle, Red Line a un volume de dans ce cas, name a un volume de volume, donc
‫il calculera simplement le volume.
‫OK, alors maintenant, testons ça.
‫Voyons simplement ce qui se passe ici.
‫Ce que nous avons créé et ce que nous sommes, nous avons donc ici une ligne vide, vide.
‫Ensuite, il dit que c'est une sphère.
‫La sphère a un rayon de quatre.
‫La sphère a un volume de deux cent soixante huit virgule zéro huit.
‫Et puis c'est un cube.
‫Ce Kupers, d'une longueur de trois à Cube, a un volume de vingt-sept.
‫D'accord.
‫Vous pouvez donc voir qu'il s'agit d'un code très simple que nous avons écrit ici, mais il explique ou montre déjà la plupart des
‫fonctionnalités que nous devons connaître sur les classes abstraites.
‫Maintenant, ce qui est cool, c'est que nous pouvons également utiliser d'autres mots-clés que nous n'avons pas encore utilisés.
‫Et comme cette vidéo devient assez longue, je dirais que nous le ferons dans la vidéo suivante.
‫Alors rendez-vous là-bas.