‫Welkom terug en deze video, we gaan abstracte klassen behandelen en daarom gaan we een aantal nieuwe klassen
‫maken, en het is belangrijk dat je het concept van klassen begrijpt en ook overerving en
‫polymorfisme, omdat we daarop gaan voortbouwen .
‫En waar we mee beginnen is om een nieuwe klasse te creëren.
‫Dus laten we hier een nieuwe klasse maken.
‫We gaan tijdens de les projecteren en ik ga een vormles maken en dat wordt de vorm.
‫Het idee is nu dat we een klasse willen maken waarvan we geen enkel object willen maken.
‫We willen dus geen vormen instantiëren.
‫We willen objecten instantiëren die soorten vormen zijn, maar zelf geen vormen.
‫Dus een vorm zou bijvoorbeeld een kubus zijn of een vorm zou een bol zijn.
‫En ik gebruik hier 3D-vormen.
‫Rechts.
‫Driedimensionale vormen.
‫En goed, we gaan klassen maken die van vorm zullen erven.
‫Maar we willen er zeker van zijn dat shape een echte abstracte klasse is, wat betekent dat
‫we er geen object van kunnen maken, maar dat we de systemen of de methoden en de eigenschappen ervan zullen gebruiken.
‫Dus laten we beginnen.
‫Laten we deze vorm allereerst abstract maken.
‫En om dat te doen, kunnen we het sleutelwoord abstract gebruiken.
‫Dus nu is het een abstracte klasse.
‫Laten we nu verder gaan met ons programma, dat geval, en zien dat het een echte abstracte klasse is, dus
‫laten we een vorm maken waarvan de vorm gelijk is aan een nieuwe vorm.
‫Dus als we dat proberen, kun je zien dat er geen instantie van een abstracte klasse of interfacevorm kan worden
‫gemaakt.
‫En aangezien onze vorm een abstracte klasse is, kunnen we er geen objecten van maken.
‫We kunnen het dus niet instantiëren.
‫Dat is hier een belangrijk aspect.
‫Oke.
‫We hebben een goed team nodig.
‫En ik ga gewoon deze eigenschap met de naam maken.
‫Dus de vorm heeft een naam nodig en we hebben een gegarandeerd centrum om dit te creëren.
‫Ik gebruik gewoon prop en dubbeltik vervolgens om een nieuwe eigenschap te maken.
‫Oké, dat hebben we in de video's gezien.
‫Nu wil ik een methode hebben en de methode die ik wil gebruiken zal een virtuele methode zijn, een virtuele leegte.
‫Informatie verkrijgen.
‫Dit virtuele toetsenbord dat u hier ziet, wordt gebruikt om een methode-eigenschapsindex of gebeurtenis te wijzigen die is
‫gedeclareerd in de basisklasse en kan worden overschreven in de afgeleide klasse.
‫Dit stelt ons dus in staat om de get infl-methode in een rijklasse te negeren.
‫Oke.
‫Dus dat is het idee achter dit virtuele toetsenbord hier.
‫Dus laten we hier gewoon een verklaring toevoegen, dus om de juiste regel en hier te controleren, wil
‫ik gewoon zoiets schrijven.
‫Dit is een en dan de naam van de vorm.
‫Oké, dit is dus een naam.
‫En nu is het idee hierachter dat ik een nieuwe regel wil hebben en dan wil ik de verklaring hebben.
‫Dit is een en dan de naam van de vorm, want wanneer we een vorm maken, kunnen we de naam ervan
‫instellen.
‫Dus we hebben nu een virtuele leegte.
‫Nu kunnen we ook een abstracte methode toevoegen.
‫Laten we nu dat abstracte dubbele volume doen.
‫Dus wat ik wil berekenen is het volume van een vorm.
‫Nu hier zal ik deze methode niet implementeren.
‫Dat is hier een belangrijk onderscheid.
‫Ik ga het hier niet toepassen.
‫Ik ga gewoon zeggen, OK, wanneer een klasse van mij wil erven, moet het een functionaliteit
‫voor de volumemethode implementeren.
‫Oke.
‫We zouden dit natuurlijk kunnen noemen, het volume van dat soort dingen berekenen.
‫Maar ik ga dit gewoon een volume noemen.
‫Oke.
‫Dus nu we onze vormklasse hebben voorbereid, kunnen we deze opslaan en een nieuwe klasse maken.
‫Dus de volgende klasse die ik ga maken, is de kubusklasse.
‫Dus ik ga gewoon een kubus maken, wat een 3D-vorm is.
‫Dus nu zal mijn kubus erven van vorm.
‫Nu, als ik dat doe, zie je dat ik hier een foutmelding krijg en zegt dat Cube geen overgenomen abstracte
‫getallen implementeert, vorm dat volume.
‫Dus laat zien dat mogelijke oplossingen juist zijn.
‫Implementeer abstracte klasse.
‫Als ik dat doe, kun je zien dat het deze volumemethode implementeert met een override-instructie.
‫Dus het zegt dat het alles overheerst wat in vorm werd gedefinieerd en als vorm als een abstracte klasse.
‫En deze methode is abstract.
‫Zoals je kunt zien, is er geen methode, maat.
‫Het is eigenlijk gewoon de verklaring van de methode.
‫Dus nu kunnen we doorgaan en natuurlijk iets implementeren.
‫U kunt zien dat we hier een fout genereren, geen geïmplementeerde uitzondering.
‫Natuurlijk willen we hier iets in implementeren.
‫Laten we dus een volumeberekening implementeren in onze kubusklasse.
‫Om het te berekenen, hebben we een eigenschap nodig die een lengte zal hebben.
‫Dus ik ga hier een nieuwe eigenschap met de naam lengte maken.
‫En ik ga ook een constructor toevoegen.
‫Dus openbare Kube.
‫En wanneer ik een kubus wil maken, moet ik een lengte doorgeven.
‫Dus dat is wat ik hier zeg.
‫En terwijl ik toch bezig ben, ga ik ook een naam toevoegen.
‫Dus zoals je kunt zien, gebruiken we hier overerving omdat de naam niet is gedefinieerd in Cuba.
‫Het is gedefinieerd in vorm.
‫OK, dus ik kan hier gewoon de variabelenaam instellen en ik ga de lengte instellen op de lengte die aan mij
‫is doorgegeven.
‫De eigenschapslengte zal dus dezelfde lengte hebben als de lengte die wordt doorgegeven zodra we een object van het type hebben
‫gemaakt.
‫Q Dus dat is het idee achter deze variabele.
‫En vervolgens kunnen we deze volumemethode implementeren en kunnen we eenvoudig iets retourneren.
‫Dus het moet een dubbele teruggeven.
‫Rechts.
‫We moeten dus iets teruggeven dat gebaseerd is op dubbel en om het volume van een kubus te berekenen en hierbij
‫gebruik ik een kubus die aan alle kanten dezelfde lengte heeft.
‫Dus ik ga gewoon zeggen lengte tot de macht van drie.
‫Dus Magpul lengte drie, dat betekent dat het lengte, tijden, lengte, tijden lengte gaat berekenen.
‫OKE.
‫Dus dit is wat ons volume zal zijn en het zal deze waarde retourneren.
‫Nu kunnen we doorgaan en we kunnen ook deze methode implementeren, genaamd info ophalen.
‫Dus wat ik ga doen, is dat ik het gewoon ga kopiëren en ik ga nu niet het virtuele trefwoord
‫gebruiken, maar het trefwoord negeren omdat ik het wil overschrijven om de info-methode van mijn ouder te krijgen.
‫Als ik dat hier doe, kan ik ze ook bellen om informatie uit mijn basisklas te krijgen, wat betekent dat het in dit
‫geval ook gaat om info van vorm te krijgen die zegt, OK, dus het gaat naar noem deze
‫methode hier.
‫Dus wat betekent dat deze code wordt uitgevoerd en vervolgens de code uitvoert die we onderaan toevoegen.
‫Dus ik ga hier een kleine tekst toevoegen en er staat dat de kubus een lengte heeft van en dan ga ik de lengte
‫hier doorgeven.
‫Dus lengte natuurlijk, ik zou hier ook het volume kunnen berekenen, maar dat laat ik aan jou over.
‫Dus als je het wilt doen, voel je vrij.
‫Oke.
‫Dus dit is hoe we het kunnen.
‫Ga je gang en maak een klasse die zal erven van een andere klasse die abstract is.
‫Nu, als een kleine uitdaging voor jou, en ik ga de video maar een keer pauzeren, zou je moeten
‫beginnen met een uitdaging.
‫Dus het idee is nu om een andere vorm te creëren, dat is waar in onze klas, die van vorm overerft
‫en de vorm een bol zou moeten zijn, nu hetzelfde type functionaliteit implementeert dat je hier voor Sphere
‫kunt zien.
‫Oke.
‫Veel geluk.
‫Plaats video en probeer dat te doen.
‫Oke.
‫Dus ik hoop dat je het geprobeerd hebt.
‫Ik ga hier een nieuwe klas maken en ik ga deze klassfeer zo noemen.
‫Ja.
‫En deze klasse zou moeten erven van vorm.
‫En natuurlijk moet ik mijn abstracte klasse implementeren, wat betekent dat ik deze volumemethode nu
‫hier moet implementeren, ik kan natuurlijk opnieuw berekenen waar ik een eigenschap heb.
‫Maar deze keer zou een nuttige eigenschap niet de lengte zijn, maar eigenlijk de straal, omdat we
‫het volume in een bol anders berekenen dan in een kubus.
‫En we hebben het niet in vorm gedaan, omdat een vorm op zichzelf geen volume kan hebben.
‫Rechts.
‫Als het niet wordt gedefinieerd als een oorlog, kunnen we het volume ervan niet berekenen, laten we zeggen, omdat we niet weten wat voor soort
‫vorm het is.
‫Rechts.
‫Daarom hebben we die clausules nodig die erven van vorm en die de functionaliteit implementeren.
‫Dus nu kan ik doorgaan en een constructeur, publieke sfeer en dubbele straal creëren.
‫Dus we hebben een straal nodig en dan kunnen we doorgaan en de naam van de bol instellen, die bol zou
‫moeten zijn, en we zouden een eigenschapswaarde voor de straal moeten hebben.
‫Dus we wijzen de straal toe die aan ons wordt doorgegeven omdat de straal van de eigenschap waarde heeft.
‫Oke.
‫Nu we dat hebben, kunnen we het volume berekenen.
‫Dus nu, in plaats van hier een uitzondering te maken, wil ik het volume van mijn bol berekenen.
‫En om dit te doen, heb ik PI nodig en heb ik de volgende berekening nodig.
‫Dus reken die Powell-straal tot de macht drie en dat alles vermenigvuldigd met drie gedeeld door of met vier gedeeld
‫door drie.
‫Oke.
‫Dus dit is hoe we het volume berekenen en nu kunnen we doorgaan en ook implementeren om de Infl-methode te krijgen.
‫Dus ik ga het gewoon in vieren kopiëren vanuit mijn kubus en om lui te zijn.
‫En dus kopieer dit deel hier en implementeer hetzelfde.
‫Dus gebruikten we het trefwoord opnieuw.
‫Het is precies dezelfde naam als in de vormklasse.
‫En we gebruiken hier Baskette-info om de methode hier aan te roepen.
‫Dus wat de methode ook was daarbinnen.
‫En in plaats van lengte door te geven of iets over de lengte te zeggen, gaan we iets
‫zeggen over de straal en de kubus.
‫In dit geval heeft de bol een straal.
‫Oke.
‫Nu we dat allemaal hebben, kunnen we nu doorgaan en objecten maken van al
‫die verschillende klassen.
‫Dus ik ga hier geen hallo wereld zeggen.
‫In plaats daarvan ga ik een aantal vormen maken.
‫Dus ik ga zeggen, oké, geef me alsjeblieft een reeks vormen en het wordt een nieuwe bol met een straal van vier
‫en een nieuwe kubus met een straal van drie.
‫En in dit geval is het eigenlijk de lengte van drie omdat Cube geen straal heeft, maar een
‫lengte.
‫En dan wil ik iets uitvoeren voor elk van de vormen tot nu toe, vorm in vormen.
‫Ik wil.
‫Doorloop ze allemaal en deze zaak, alleen die twee.
‫Maar wat ik wil hebben is gevormde informatie.
‫Dus info krijgen moet gebeld worden.
‫En ik wil zoiets schrijven.
‫En in dit geval nul.
‫Zal de naam zijn en dan wil ik het volume laten zien, dus ik wil dat de naam een volume heeft van.
‫En dan wil ik natuurlijk het volume weten van dit stuk waar we naar kijken, dus
‫geef die naam vorm en vorm dat volume.
‫OK, dus hier is het belangrijk dat we de volumemethode noemen, toch?
‫Het is niet zomaar een.
‫Eigenschap, dus we hebben controle, Red Line heeft een volume van in dit geval, name heeft een volume, dus het
‫zal alleen het volume berekenen.
‫Oké, laten we dit nu eens testen.
‫Laten we eens kijken wat hier aan de hand is.
‫Wat we hebben gecreëerd en dat we zijn, hebben we hier een lege, lege regel.
‫Dan staat er dat dit een bol is.
‫De bol heeft een straal van vier.
‫De bol heeft een inhoud van tweehonderdachtenzestig komma nul acht.
‫En dan is dit een kubus.
‫Deze Kupers, een lengte van drie tot Cube heeft een volume van zevenentwintig.
‫Oke.
‫Je kunt dus zien dat dit een heel eenvoudige code is die we hier hebben geschreven, maar het verklaart of toont al de
‫meeste functionaliteit die we moeten weten over abstracte klassen.
‫Het leuke is dat we ook wat meer zoekwoorden kunnen gebruiken die we nog niet hebben gebruikt.
‫En aangezien deze video lang genoeg wordt, zou ik zeggen dat we dat in de volgende video doen.
‫Dus tot ziens daar.