bonjour à tous et bienvenue à la foire à la saucisse mais plus exactement cette formation au langage java pour la séance 19 on va continuer un petit peu sur les notions qu'on avait vu précédemment et là sur les vidéos on vous est peut-être un petit peu et je vous l'avais dit vous allez repas pas mal de séances sur des notions très liés mais que j'ai évidemment il est séparé notion par vidéo pour soit plus facile pour vous mais vous êtes heureux quand même pas mal de choses qui sont en lien chacune avec les autres qui
vont permettre comme ça d' avance un petit peu pour cette vidéo nous allons parler des classes abstraite alors vous savez ce qui nous classe vous savez comment construire une classe on java comment utiliser des attributs faire des méthodes etc on a même abordé l'héritage notion très très très importante de la programmation et à partir de tout ça on va pouvoir intégrer une autre notion un peu particulière mais kia voilà qui a besoin en tout cas d'être d'être connue des dessus qui concerne les classes abstraite une classe abstraite alors on a une classe particulière sérieux que
la générale comme on sait le faire habituellement qui est une classe bien précises une classe concrètes sur qui représente en fait quelque chose j'avais déjà dit une entité un concept une idée ou n'importe quoi et on sait exactement ce qu'on veut représenter si on prend un exemple paraît comme j'avais pu aborder dans d'autres vidéos si on cherchait par exemple une classe pour représenter un certain type d'animal comme un chien on ferait une classe pour le chien d'accord et on aurait comme ça ces différents états et son comportement dans que ces attributs ses méthodes pas de
problème par rapport à ça maintenant si au cours de mon projet quand un projet donc d'un programme que je réalise et j'ai un peu une certaine idée générale de ce que je veux faire intervenir dans le programme et la bon je vais créer du coup un exemple ici pour voir créée en fait des espèces des êtres vivants à comprendre cet exemple on est d'accord qu'un être vivant c'est une notion qui est très abstraite qui est très vague d'accords un être vivant au final ça englobe énormément de choses donc si je disais bon dans un programme
j'ai besoin de pouvoir créer des êtres lyon c'est très même trop général pour pouvoir faire quelque chose pourtant je veux quand même quand même au niveau du code de le dire je veux représenter un être vivant d'accord dans la feu de manière abstraite mais je quand même en avoir une représentation donc pour ça on va créer une classe abstraite la classe abstraite bas c'est très simple on va créer un fichier de toute façon comme on le fait habituellement je vais l'appeler du coup avec le nom de le nom de mon commentaire de mon espèce vivante
en objet l'appeler living species on va faire ça comme ça pas kate moss a un petit peu changé le nom du paquet je mets ça vous change pas de grandes choses c'est selon comme pour vous en tout cas de réviser un petit peu l' usage de pâques et je pense avoir on fait comme ça et là avec une classe qu'on aurait concrète au départ un accord ferait ce genre de choses ça et ensuite la l'intérieur on aurait un autre constructeur d'autres éventuellement des attributs privé ou protéger si on veut faire de l'héritage des méthodes etc
etc le problème c'est pas vraiment prendre mais bon je vous l'avais dit en fait par rapport à ce qu'on voulait d'ailleurs - lors d'une petite revue skull c'est comme moi c'est quelque chose de très vagues à serge et pas forcément envie de dire concrètement ce que c'est une espèce vivante parce qu'on l'a dit tout à l'heure c'est quelque chose de très générales est quelque chose qui englobe tout un tas justement d'être vivant potentiel donc je veux que ça reste abstrait et pour ça que nous avons le mot-clé abstrait qui va permettre de transformer cette classe
de manière abstraite une classe abstrait tard c'est pas forcément avoir des exceptions mais ça que java à quelques sections là dessus c'est généralement en fait et bien une classe qui a au moins une de ces méthodes qui est aussi abstraite et à certains langages qui vous oblige à rendre de classe abstraite et vous verrez dans certains langages et bien vous pouvez compilé même si au final vous avez aucune méthode abstraite et que votre classe les donc faut faire attention des fois il peut y avoir des petites particularités propres aux langages mais dans l'idée d'accord dans
le principe même une classe et abstraite dès lors on doit être en tout cas indiqué pour le développer en tout cas c'est un indicateur très important à se traite à partir du moment où une de ses méthodes au minimum et abstraite aussi alors pourquoi c'est important de savoir ça va tout simplement que vasselle 15 abstraite on ne va jamais pouvoir l'instance y est d'accord on va jamais en fait créer des objets d'espèces vivantes parce que encore une fois nous donne idée on veut pouvoir avoir quelque chose qui représente ça mais on veut pas commencer à
créer des espèces vivant parce que c'est beaucoup trop vague c est comment comment on peut en fait déterminer le comportement d'une espèce vivant c'est trop encore une fois vous voyez c'est trop vagues on peut pas vraiment se représenter sa banque en termes de cote ce que je vais faire je vais quand même me dire qu'est ce que je peux mettre comme information on va faire un on va mettre protected comme ceci je cherche un petit peu en maths string et le nombre d'accord pour dire que l'on veut quant à elle représentée dans l'idée qu'on ce
qu'on vous représentez nous de l'espèce vivante et lawrence encore ça y'a pas de problème là-dessus alors hein on va implémenter une méthode donc là on va le faire on va l'implémenter comme si on avait une classe normale à une classe concrètes une méthode qui permettra en fait de savoir qui qui suis-je donc en fait qui est cette espèce vivante donc on va faire simplement qu'en fait ce sera une sorte d'accès sur un ring et heures mais ce qu on l appelait guette quelque chose mais on va dire simplement celui où à mayer vous inquiétez pas
dehors c'est la fin du monde c'est pour ça que vous entendez des bruits bizarres c'est normal c'est l'apocalypse tout va bien ou un mal et du coup tout est simplement lui dire de faire ça vraiment quelque chose de très simple pour dire bad et que une espèce quelconque on verra plus tard voudra savoir baky et elle est bien on retournera en fait sont d'accord c'est n'ont rien de s'identifier on considère ça comme ça et à côté bas pendant une espèce vivante et bien ça peut faire pas mal d'autres choses certes ça peut par exemple alors
je mets de vol parce qu'au début je sais pas vraiment ce que ça te voilà ce que ça a besoin comme information interne de code donc pour moi ça retourne rien ça ne prendra aucun paramètre d'accord et ça va évidemment avoir un nom par exemple manger tant de choses une espèce vivante dans la représentation que je veux faire elle peut manger mais ça n'est pas suffisant parce que là si on fait ça en objet de d'implémenter ça pendant que j'ai wahid notre méthode l'implémenter mais comme vous avez dit une classe et abstraite à partir du
moment où une au minimum de ces méthodes est abstraite aussi on va réutiliser ce mot clé pour une méthode et cette méthode ici n'a pas besoin être implémentée d'accord on ne le fait pas et on l'a laissé tel quel alors on pourrait y mettre ici un type de retour est des valeurs ici si vous voulez en paramètres si vous ne savez pas d'accord vous n'êtes pas capables tout de suite concrètement de vous redire qu'est-ce qui aurait et ben vous mettez rien on voit eu d ici rien du tout voilà et on peut pas écrire ou
éventuellement d'autres choses en jeu pas forcément faire plaindre ce que vous allez voir par la suite ça va rajouter pas mal de travail mais en gros on peut dire void ne sais pas moi on peut dire ce pic parler commencé un peu bizarre mais bon pourquoi pas bien ce genre de show voilà et ça c'est ma classe abstraite c'est ma représentation très vrai qu très abstrait dans cette qu'elle le dire d'une espèce vivante d'accord une espèce de vente qui peut manger donc on le voit et ça me voit tout de suite elle peut manger elle
peut parler elle peut s'identifier une certaine manière est le seul un fournisseur d'informations pour le moment qu'elle a de manière vague c'est un non terminée ça c'est notre classe donc évidemment comme c'est abstrait on ne peut pas quand très important faire ceci l'accord et de dire je crée une instance de sa déjà j'ai pas aimé j'ai même pas indiqué te définis constructeurs et elle est abstraite donc si vous essayez de faire ça de toute manière en béarn évidemment testé que vous puissiez voir ses appointements voilà on va vous dire que voilà lire in space is
is abstract donc on ne pouvait pas l'instance y est tout simplement donc ça c'est un moyen de voir que justement elle est abstraite on ne crée pas d'instance d'une classe abstraite rend du coup on vous dit peut-être n'est que si on a une classe comme ça qu'on ne peut pas instantiel nous sert à quoi parce qu'on a fait une classe qui normalement on a appris qu'une classe permettait d'avoir un modèle de construction de fabrication de quelque chose mais au final si on peut pas le construire ce quelque chose ça a un peu rien à cette
classe et non justement il ne sert pas alors déjà il faut pas le voir comme un comment dire quelque chose qui va vous faire gagner du temps où vous vous apporter des fonctionnalités là au niveau de vos classes mais c'est surtout quand vous allez vous les utilisez ces classes que vous allez gagner beaucoup de temps et beaucoup de ça va apporter plein de fonctionnalités très intéressantes en terme de code pour l' usage des classes pas dans le code même des classes et ça c'est quelque chose qu'on verra dans une séance prochaine quand on parle notamment
du polymorphisme il faut qu'on parle aussi des interfaces et deux notions ont pour la prochaine séance on parlera je peux vous le diront désintérêt face et la séance d'après on abordera le polymorphisme qui est très relier justement très liée aux classes abstraites aux interfaces qui sont d'ailleurs deux notions souvent qu'ils sont énormément confondu par les développeurs qui sont en train d'apprendre donc on aura l'occasion de faire le tour de tout ça donc là pour bien va pas tout mélanger non plus pas en faire trop d'un coup faut comprendre donc ça on peut pas d'accord c'est
une classe abstraite on ne peut pas l'intention se pose pas la question maintenant de cette classe abstraite il faut pouvoir avoir quelque chose de concret ces requins partir de ça maintenant vous allez pouvoir créer des classes concrète des espèces vivantes concrètes qui auront du coût des informations bien concrète elle aussi donc ça c'est très important première chose qu'on va faire je vais créer moi qu'une seule classe je vais pas en faire plusieurs des classements classement pas faire un code qui prend 15 ans donc je vais juste faire ça je vais faire un tir par exemple
tiger pour changer un petit peu toujours pas quelle heure je refais un copier-coller on va gagner un peu de temps voilà ici alors on pourrait faire une classe abstraite qui hérite d'une autre classe abstraite 1 vous pouvez tout à fait faire ça on peut créer une hiérarchie de classe abstraite ya aucun problème mais ici on va vraiment nous parce qu'on va pas faire trop trop de code faire une classe concret directement donc public las tiger elles étant d'accord notre classe abstraites les vignes species rappelle que cet héritage est parfaitement normal parfaite dans le prix puisque
on peut dire qu'un tigre est une sorte d' espèce vivante on ne comprend tout de suite qu'à une relation d'héritage qui est logique et j'ai vu ma classe abstraite pour ça sinon elle aurait à servier là pour le coup vraiment rien du tout et maintenant comment ça marche en terme de deux concurrentes et revoilà de d'objets qu'on crée ici cela on a une classe concrètes mais déjà on va pour la construire on va pouvoir fabriquer des tigres conquête c'est important le tir bas comme il est précis sinon je veux pas y donner un nom particulier
je vais simplement dire le nom plus de la classe abstraite un rappelez vous on a le on a fait un truc n'attribue pardon protégé ici pour qu'on l'a on l'a hérité bah je vais dire c'est un tigre tout simplement ok voilà c'est ça sape son identification c'est que c'est un tigre on va pas les bras pas identifié différemment chaque tir on dira juste que dès qu'on crée un tigre et bien son nom ses tigres voilà on va pas chercher plus loin pour le moment juste ça cette méthode wa my vous voyez que comme il en
hérite et bien voilà s'il va pouvoir faire ça donc on va tester à faire tiger ti ne va pas faire des séries b pour éviter on fait juste ça et logiquement si mon code est bien fait je dois pouvoir faire ceci pourquoi c'est logique c'est encore une fois c'est juste de l'héritage comme on l'a vu précédemment pas de surprise sauf que là il ya une petite nouveauté que l'abstraction et là vous allez voir que ce n'est pas suffisant je vais vouloir compiler et là il me dit bon tiger n'est pas abstrait d'accord n'est pas une
classe abstraite et elle doit du coup pensé en fait donc à overweight c'est-à-dire à écrire à implémenter pour le coup les méthodes de la classe abstraite ça veut dire qu'en gros là il ya deux méthodes la corne la classe abstraite qui ce qui le sont aussi qu'ils sont non implémenter du coup par définition qui t'expliquent et bat autant pour une espèce vivante comme c'était une classe abstraite on n'avait pas besoin de préciser comment un être urgent manger comment il parle puisque sap est différent selon l'animal en question ou l'être vivant en question s'il n'y a
pas que des animaux dans les êtres vivants par contre la pratique on va être obligé de l'implémenter parce que le tir il va pas manger il va pas parler n'importe comment communiquer n'importe comment je me mets d'ailleurs communiquer et au lieu de spicules peu importe donc là appartient dans vous avez des méthodes ici abstraite dans votre classe abstraites des vous avez une classe concrètes qui en héritent vous devez obligatoirement ça permet en plus de ne pas faire l'erreur puisque will smith à ne compile pas donc ça vous force en fait et ça évite les oublie
ça vous force à implémenter les fameuses méthode abstraite donc ça dont je reprends le code tel quel ici je l'imprimante l'accord ça peut éventuellement retourner autre chose comme ça peut prendre pour le coup ici des paramètres ce qu'on va vraiment l'implémenter dont on peut changer un petit peu la signature par contre on garde le même nom de la méthode est pareil pour speak quand moi je veux pas faire de modifications ici donc là implémentation obligatoires d'accord on est dans une classe concrètes on doit implémenter absolument toutes les méthodes abstraite de la classe parente j'ai pas
besoin d'autres attributs donc j'en rajoute pas on pourrait mettre autre chose on pourrait mettre par exemple la junte y qu'on apporte quoi mais je m'embête pas alors là comme j'avais dit une classe abstraite peut hériter d'une autre classe abstrait c'est là que j'aurais pu aller plus loin en disant je fais une classe concrètes par exemple pour un homme d'accord pour un homme et à côté je fais une autre classe abstraite qui est un animal dont quand un animal et ensuite de animal et bien je créé justement des espèces animales unanime au pardon concret donc en
gros on aurait living species tout temps aux classes abstraite on aurait en héritage une classe animaux et ensuite on aurait plein de classe concrète de l'animal comme baettig rocha dauphin lyon se trouvent etc et l'homme serait une autre classe mais directement concrètes irritante de cette classe abstraite la living species d'accord on peut faire ce genre de hiérarchie voilà donc là mon porte pas comme j'ai eu à rajouter trop de quoi défaire 15000 classe parce que ça pourrait aller très très ça pourrait être très long par la suite on va se contenter de ça puisque le
principe sera suffisamment explicite de cette manière donc là pas de souci car déjà bon on va implémenter ça pour le moment je sais pas si là il n'arriverait pas à chipoter l'alizé quand même marqué même si jérémy voilà dans le coach j'ai quand même il concède avoir pour lui ça implémenter même si ça fait rien poisson ça retourne à rien pour lui c'est suffisant donc en gros je fais ça et là où à miles normal puisque je ne fais que return le l'information qu'il faut l'affiché une telle haine affichée directement le contenu à s'embêter et
voilà bon pas de problème au niveau de l'héritage ça fonctionne bien on récupère bien le retour en fait de la méthode ou à my way qui a été implémenté ici donc si je voulais la changer dans tigre vous l'avez déjà vu un de redéfinir comme ça des méthodes on pourrait le faire si on veut changer la manière dont on s'identifie pour le tigre explicitement pour le team spécifiquement tout cas pour le team moi comme j'ai pas envie que sa chance pour ça que j'ai mis dans la classe ça traite pour dire peu importe l'espèce vivante
dès qu'elle utilisera ou en maille elle fera sans voix et si à un moment donné bas imaginez plus tard ce qu'il faut voir plus tard pas vous avez vous créé une nouvelle classe dans votre programme même si ces cinq mois six mois un an plus tard dans le droit et que spécialement pour sa case audi dont celle là je veux que ou à my qu'elle fasse autre chose et bien vous pourrir définir d'accord cette méthode aucun problème dans la classe spécifique que vous venez de créer encore une fois n'oubliez pas que ça va chercher la
méthode que vous avez à voir dans la classe la plus proche donc l'actuel et si elle n'existe pas on va remonter dans les classes par jusqu'à en trouver les siens n'a vraiment pas du tout bon là il y aura un problème parce que vous essayez d'appeler une méthode qui n'existe pas mais ça c'est encore autre chose donc ici on va dire comment le tigre mangin en clamant je vais pas embêtés je met des petits textes encore une fois pour simuler sa donc juste pas - je mens je sais pas moi je mange de la viande
ça par exemple corps up et ici ça d'arriver à produire communiqué on va dire je jeu rugy a dirigé pas forcément le tigre un je ne sais plus le nom désolé j'ai plus le nom exact mais il s'appelle c'est le lion qui rugit mais pas le tir mais j'ai plus j'ai plus le terme exact en tête mais c'est pas grave on voit là d'accord on là pour le coup on peut se représenter parce que voilà avons un tigre il mange effectivement de certaine manière il comme une certaine manière il a un nom bien spécifique c'est
quelque chose de concret encore une fois donc ce qui est concret on peut poser des noms peut poser des choses dessus encore une fois là on était vraiment dans quelque chose d'abstrait ça voulait pas dire grand chose donc on avait quand même besoin d'une représentation alors tout de suite vous avez peut-être vous dire que ça sert à rien on aurait pu directement fait rien classe tiger est terminée et quand on abordera la vidéo plus tard sur la polymorphie parce que ça en fait c'est dit de lui que c'est une introduction pour ce qu'on abordera concernant
le polymorphisme quand on vous aurait également vu les interfaces donc six points en août soyez pas trop l'intérêt de servir de classes abstraite c'est normal parce que je veux pas voir les interfaces fin les les interfaces déjà oui de toute façon et le polymorphisme maintenant on regardera ça dans les vidéos prochaine on sait parfaitement normal si pour moi vous en voyez pas forcément l'utilité c'est logique je peux pas tout voir tout de suite et je veux pas tout voir tout de suite avec vous on a ça en tout cas comme comportement est déjà premier avantage
vous pouvez voir qu'encore une fois c'est que voyez on peut prendre part n'entend en tant que développeur d'une représentation et ce qui est pratique c'est que si un jour hélas faut penser aussi beau fait que vous n'êtes pas forcément seul ou que votre quad peut être réutilisé à ce que le principe de la programmation que j'ai c'est la réutilisation de code 1,5 argument important par rapport à ce type de paradis mais si un jour vous une personne vers utiliser votre code il veut créer une espèce vivante et bien il vat qui va faire il va
créer sa petite classe d'accord georges pas moi dogues pour créer un chien est automatiquement s'ils essayent de rien mais trop kiffé ces petits trucs à lui il va vouloir compiler le code et salue métrage tant les messages pour des rêves il faut que tu aies il faut que tu nous nous explique en fait comment ton chien il le comique et comment ils mangent donc automatiquement il se dira il saura qui toi implémenter ces méthodes là si on n'avait pas d'histoire d'abstraction déjà mais il y aurait pas forcément d'erreur d'accord pour beaucoup de choses et bien
en fait ça posera pas de problème voilà il aurait des animaux il aurait un chien en fait qui n'a pas de comportement pour manger communiqué et sauf que si un jour on dit bon bah on a toutes nos espèces vivantes et ça bon je fais légèreté d'intro polymorphisme et on dit toutes les espèces vivantes qu'on a un des pins porte ce qu'elles sont on veut les faire parler tout de suite et là le problème c'est que si le chien qui irrite pourtant un des espèces vivantes il a pas on n'a pas expliqué comment il communiqué
vous allez avoir tous les animaux qui vont pouvoir communiquer ou qui vont pouvoir manger et le chien lui il pourra pas manger les pourra pas communiquer voyez il va manquer quelque chose il va manquer un comportement et c'est quand même assez dommage parce qu'à la base il était censé pouvoir manger communiqué puisque c'est dans la classe abstraite donc là l'avantagé d'une classe abstraite pour le coup c'est à ça que ça sert c'est que si on veut créer quelque chose de concret automatiquement à la compilation il y aura des erreurs si vous oubliez si vous ne
pensez pas implémenter les méthodes abstraite d'accord sa force en fait le développeur ou l'utilisateur de votre code et vous même un ça peut être vous même aussi bien sûr à implémenter dans les classes concrète ce qui est est abstrait dans la classe parente il n'y a pas d'obligation de ce côté et ça va évidemment avoir plein davantage concernant le polymorphisme comme on verra dans pas la prochaine séance mais sale d'après vous voilà donc grosso modo pour les classes abstraite alors je pense que je vous expliquais pas mal de choses par rapport à sa part d
un petit peu sur mes notes si j'ai oublié un truc que voulez vous dire les méthodes abstrait où j'en ai parlé par instanciation a parlé et ce que je voulais dire pour le moment les rites pour le comme s'appellent pour les interfaces on verra plus tard donc c'est pas c'est pas non plus le problème par rapport à ça donc du coup en fait on a fait le tour c'est tant mieux alors comme je peux pas trop vous donner d'éléments tout de suite 1 par rapport à ça parce qu'on n'a pas encore tout vu encore une
fois on n'a pas parlé interface va même pas abordé le polymorphisme tout ça mais en gros c'est utile dans le sens où on peut factory n'est due qu'au nez ça c'est un élément très important serre si vous demandez pas dans quel cas il faut utiliser une classe abstraite et bien dans le cas où vous avez différentes classes déjà qu'ils peuvent avoir des liens serre si je crée un tigre si je crée un chien si je crée un dauphin on est d'accord que c'est des classes qui sont liées entre elles ont des choses communes ces classes
là on peut on peut dire qu'à dauphin ils mangent qu'un tigre images payé cash game en jeu qu'on trouve déjà des comportements commun et éventuellement des propriétés des états comment aussi ils peuvent avoir un nom on peut tout imaginer qu'ils aient on peut tout imaginer qu'ils aient un âge on peut aussi imaginer qu'ils aient un plat préféré fin voilà un régime alimentaire voilà spécifiques voilà on retrouve plein d'éléments communs c'est pas comme si on avait par exemple une voiture et un tigre là c'est bizarre de se dire on va faire une classe abstraite d'accord et
de cette classe abstraite on va étendre de classe concret attendant on va créer des tigres à partir d'espèces vivantes et des voitures là pour le coup on se rend bien compte qu'il n'ya pas vraiment de lien et du coup ça va pas donc si vous trouvez qu'il ya des classes comme ça avec des liens avec des choses communes et que vous pourriez du couvoir de la répétition de code d'accord encore une fois en gros bas j'ai pas forcément envie admettons je sais pas moi je feins on va le faire d'ailleurs ici je vais arriver en
plus un copier-coller savent aller vite je vais faire un laguiole ici voilà je vais changer ici bayonne ok ok ok laguiole ou alors bon là c'est un cas un peu un peu particulier mais en gros ce qu'on peut faire elle a fallu que je fasse par exemple une classe un peu une autre classe abstraite en gros il aura fallu que je fasse une classe abstraite félin ou un truc comme ça ok il m'a par exemple comment je peux faire ça au bon je peux peut-être changé ici sinon pourquoi pas où on peut changer la donne
on va faire ça comme ça je vais changer un peu du cos à varanges à polydôme et c'est pas bien grave on va virer suis là je crois que ces félins hommes semblent terme anglais g1 d'autres mais c'est pas grave au pied on laissera je crois que c'est avec un peu injustement comme ça c'est pas sa séparation peu importe voilà ces jardins peut mettre en français mots comme j'ai l'habitude quand même d'écrire le code en anglais les textes en français mais le code en anglais on va regarder ça comme ça donc le nom bon hockey
et on va pas faire ça on va dire on va faire ça par exemple non regardez le comment s'appelle le spic donc on va virer cette méthode ici et on va dire que le spi voilà ça on est clémente et du coup il fait en fait quand je serai un abri comme ça par rapport à l'animal en gros on part du principe que tous nos félins ont un comportement commun c'est à dire que pour communiquer des yeux rougissent donc ils crient en fait ils poussent voilà un grognement entre comme ça peu importe donc on leur
présente ici via du texte pour partir de ça mais l'ajustement si je n'avais pas fait alors on va y avoir des changements à faire par rapport à aux félins pour le coup avec qui changement le peuple peut te ici je virerais on peut laisser ça comme ça ça du coup bon mahitsy on va le laisser ici on aurait cet exemple la bombe à laïta mettront peut dire ça ok moore a laissé je vais faire ça je vais enlever un milieu où j'aurai plus de méthode abstraite ici qu'est-ce qui pourrait différents qu'est-ce qui pourrait être différent
pour le lion j'ai passé c'est un peu compliqué d'avoir des exemples comme sac plein de choses différentes ce qu'ils sont très liés en fait le but ultime peut-être pas le meilleur exemple c'est pas bien grave je peux prendre je peux prendre je peux prendre ce livre paraît vraiment comme ça on va dire à les slips et on va dire le lion a lyon ça dort beaucoup ins et voilà je dire alors je dors je pas moi je dors 16 heures par jour d'accord on va dire ça comme ça et le tir il dort un peu
moins ok on va pas partir de là dessus qui on va là on va dire je dors moins que le hockey mais l'a au final vous voyez que dans le cas donc ce que j'ai fait en fait c'est que j'ai fait une classe féline d'accord pour les félins en fait abstraite et je dis pas que j'ai deux classes concrètes un lion est un qui représente en tout cas un lion pays nôtre qui représente un type voilà pour résumer un peu tous les petits changements que je ne ferme dans la vidéo mais alors ils dorment chacun
différemment c'est pour ça que si j'ai vraiment une méthode abstraite d'accord par rapport à ici alors là pour le coup elle n'est pas abstraite donc on fait ça comme ça et pour dire simplement je considère que tous mes fans un dormiront absolument différemment donc il faut absolument implémenter cela pour chacun du coup le lion concrètement il dort d'une manière bien précise le tigre y dort aussi à sa manière mais de manière précise également donc une implémentation différentes par classe concrètes par contre pour moi dans ce cas c'est en tout cas le lion et le thing
bien envoyé bayer rugissants fait faire quand je les fais par les iris du coup si je voulais produire ça va vous voyez que j'ai une répétition de code entre mes deux classes concrètes d'accord et on sait que la répétition de code en informatique faut absolument éviter donc c'est un argument suffisant d'accord c'est une raison suffisante un motif suffisant pour dire bien ce que j'aime il a par exemple le spic là je le factories ça veut dire qu'au lieu de le répéter à xv ambroise que la dite rouge et qu'un lion un tigre mais rien demain
de faire une panthère un puma à léopard à jaguar grippe a et si je veux tous les faire rugir et bien on va voir je ne sais combien de méthodes répétées et là y'a qu'une ligne dans ma méthode imaginée des méthodes beaucoup plus lourd enfin la répétition est juste pas possible donc on dit simplement pas voilà tout mais félins ils réagissent comme ça et si mon félin dont effectivement rugir comme j'ai marqué là on laisse tel quel d'accord parce que c'est un c est implémenté dans la classe abstraite donc pas de problème je peux d'ailleurs
le faire on va faire donc voilà un tiger ici on va dire que tu es i il va se piquent un objet miss plie encore une fois comme terme voilà peu importe liot à laguiole pour montrer je fais ça il se trouve que vous avez un peu de visuels en termes de code c'est mieux point java où logeait bini on voit que les deux gîtes voyez pas là comme ça on prend même pas savoir du coup qu'il lyon qu'il tigre un juste regarder le termine donc x se comporte de la même manière pour communiquer pas
de problème donc voilà donc là pas de répétition de cols bleus l'abstraction ici là la fameuse classe abstraite que je ne sers m'a permis de factoriser du code pour ne pas avoir à le répéter dans les différentes classes concrètes et si à un moment donné je veux créer un puma qui serait donc la trompette mais qu exceptionnellement celle-là je veux pas qu'elle communique pareil et bien dans la classe du puma je réécris république veille de ce pic comme jimmy là et je mettrai autre chose dans l'implémentation d'accord et ça fera une redéfinition en fait de
la méthode même surcharge pour le coup pour dire bah non tu comme tu es un puma tu vas pas à rugir tu vas pas ce pic un communiqué comme un félin de manière abstraite un de manière générale mais comme toi tu sais faire parce que toi tu es un peu particulier le puma donc tu va rugir autrement tu va communiquer autrement voilà un petit peu le principe et dans quelqu'un on utilise une classe abstraite une classe abstraite allez faites à la basse pour factoriser du code accord par rapport à des classes concrètes qui sont étroitement
liés ces termes sont qu'aux emplois dans le sens où elles ont des liens ensemble elle peut avoir des choses communes d'accord et saas est issu de vous poser la question encore une fois c'est dans un jeu vidéo vous créez un guerrier un mage vous crée un jeu pas moins wolle on importe quoi on trouve naturellement juste en se posant les bonnes questions tout un tas de choses qui sont communes à ces entités a pour le coup donc naturellement m'ont tout de suite voilà on comprend qu'on peut faire une classe abstraite qui représente répandant un combattant
un personnage de joe n'importe quoi qui auraient tous les éléments communs à cela et si les gens doivent faire certains trucs spécifiques comme par exemple leur manière ce bas de se défendre de soigner eh bien on en fait des classes abstraite et chaque place concrète d'oeuvre à implémenter à sa manière son propre comportement mais voilà un petit peu l'intérêt donc il ya plein d'autres intérêts d'autres utilités un de la classe abstrait mais ça on le verra encore une fois quand on abordera le polymorphisme c'est là qu'on terminera en fait sur un dernier vol un dernier
point essentiel de sa et 2 justement l'utilité de serrures de kassav retraite s'il n'y avait pas besoin des classes abstrait des interfaces bas on ne serait jamais embêté a inventé ce genre de chose en pour amasser objets en libre fait sens ça va très bien didou qu'il ya vraiment des avantages à ça et vous le verrez par la suite en tout cas voilà moi j'ai fait le tour je vous ai tout dit si jamais il vous trouve que j'ai pas assez détaillée qui vous manque des petits éléments pour bien comprendre ce concept de classe abstraite
n'hésitez pas à le faire savoir dans les commentaires un faut surtout pas hésiter à poser des questions si c'est pas assez explicite pour vous on ne peut pas faire un truc une explication parfaite et c'est pas évident expliqué ce que moi dans ma tête je sais très bien ce qu'est une classe abstrait je connais bien les concepts n'y a pas de problème je sais les employés mais après pour l'expliquer avec des mots simples et que ça rentre dans la tête de tout le monde c'est pas forcément aussi facile pour le coup ça peut des fois
être trop justement abstrait ans mais l'explication donc si a besoin d'être un peu plus explicite un peu plus un peu plus concret dans mais dans mes explications n'hésitez pas bien sûr les commentaires voilà puis bah pareil je voulais partager laïque et la vidéo etc moi je crois encore une fois je ne dis pas soit on met temps en temps c'est pas mal aussi n'hésitez pas à le faire et on se retrouvera du coup pour l'appoint de ça on parlera des interfaces donc c'est un autre une autre notion très importante aussi comme les kassav trade mais
c'est autre chose et souvent les gens ont tendance à mélanger un peu les deux donc là on joue réserve du coup la prochaine séance pour parler des interfaces et je vous dis à bientôt pour la prochaine vidéo en java [Musique] [Applaudissements] [Musique]