‫In de laatste video heb je geleerd over overerving en de basisprincipes van overerving, maar
‫laten we nu wat dieper duiken en een aantal sleutelwoorden bekijken die relevant zullen zijn als het gaat om overerving.
‫En degenen die we gaan bekijken, zijn virtueel en het override-sleutelwoord.
‫Nu vraag je je misschien af, waarom hebben we hier dieren op het scherm?
‫Waarom toont dit een heleboel afbeeldingen van dieren?
‫Welnu, het punt is, we gaan een dierenklasse implementeren waarmee we kunnen erven van een
‫dier dat de ouderklasse is, die een aantal vaardigheden heeft, zoals wat kan een dier doen?
‫Hij kan geluid maken, hij kan eten en hij kan spelen.
‫Dat is in ieder geval wat we de dierenklasse gaan laten doen.
‫En natuurlijk kan een dier nog veel meer.
‫We geven het een aantal eigenschappen zoals de naam The Age eigenschap, en als het honger heeft, bijvoorbeeld.
‫Dus alleen als het honger heeft, zal het eten, anders zal het niet eten.
‫Dus dat is eigenlijk het idee van het creëren van een dierenklasse.
‫En nu kunt u natuurlijk doorgaan en deze klasse zelf al implementeren.
‫En dan gaan we overerving gebruiken om niet alleen dezelfde methoden en dezelfde eigenschappen te gebruiken, maar
‫ze ook te negeren, in feite zeggend: OK, het geluid dat een dier dat een hond is, zal anders zijn dan het geluid
‫die bijvoorbeeld een aap maakt of een aap maakt of een giraf maakt of iets
‫dergelijks.
‫OK, dus dit is eigenlijk wat we gaan implementeren.
‫En door dat te doen, gaan we de verschillende trefwoorden leren, zoals virtueel en het override-trefwoord.
‫Dus laten we erop uit gaan en hiervoor een nieuw project maken.
‫Ik ga een consoletoepassing gebruiken.
‫Ik noem het een virtuele override-demo.
‫Oke.
‫Als een kleine uitdaging voor jou, als je dit voor jezelf wilt proberen, schrijf dan een klasse
‫die dier zal heten en het zal de eigenschappen naam leeftijd is hongerig hebben.
‫Dan natuurlijk een constructor, dan heet een methode geluiden maken, zowel eten als spelen.
‫OK, dus implementeer ze mogelijk allemaal als je wilt, want dit geeft je een beetje
‫oefening om al deze verschillende methoden te maken.
‫En dan zullen we zien hoe we ze een beetje kunnen veranderen, zodat we ze op de juiste manier kunnen gebruiken bij overerving.
‫Oké, dus ik hoop dat je het geprobeerd hebt, daarom kunnen we natuurlijk gecontroleerde Casey gebruiken om een nieuwe klas te
‫creëren en ik ga dit ene dier noemen.
‫Zoals zo en nu zal deze dierenklasse een aantal eigenschappen hebben, zoals ik al zei, dus de
‫naam eigenschap, de eigenschap, evenals de zijn hongerige eigenschap, en dan een eenvoudige constructor die al deze eigenschappen gebruikt, je kunt zien
‫dat we gebruik gewoon GetSet.
‫Trouwens, als je heel snel een eigenschap wilt maken, typ je gewoon prop dubbeltikken en voer je het type
‫in, bijvoorbeeld string en dan hier bijvoorbeeld de naam.
‫Dus zo zou je het heel snel doen, niet meer hoeven typen dan nodig is.
‫Oke.
‫Dus dit wordt onze constructor hier met de naam The Age en de heeft honger en je kunt zien dat hongerig
‫is niet iets dat we aan het dier gaan instellen als we het eenmaal hebben gemaakt, maar
‫we gaan het instellen op teken standaard aan het begin.
‫Dus ik stel het gewoon in op zijn hongerige standaard.
‫OK, dus nu zei ik dat ik een methode wil hebben die geluiden maken zal heten.
‫Laten we dus naar deze methode kijken.
‫Dus ik gebruik een lege virtuele methode, maak geluid voor andere klassen om te overschrijven.
‫Ik maak deze methode virtueel zodat deze kan worden overschreven door klassen die van dieren erven.
‫En we zullen later zien hoe we dat moeten doen, want het geluid dat een dier maakt, hangt sterk af
‫van het dier zelf.
‫Dus honger hebben is iets dat elk dier deelt, want zo functioneren we.
‫We hebben energie nodig en die krijgen we via voeding.
‫En om onszelf te motiveren om voedsel te halen of te eten, hebben we het gevoel van honger.
‫Maar deze virtuele methode die we hier hebben maakt dat geluiden niet leeg hoeven te zijn.
‫Dus laten we eens kijken naar deze eetmethode hier.
‫En deze eetmethode zal ook een virtuele methode zijn.
‫Hierdoor kunnen onze subklassen deze methode overschrijven.
‫Dus als we de methode willen overschrijven, kunnen we dat doen, maar dat hoeft niet.
‫De algemene functionaliteit is degene die u hier kunt zien.
‫Dus het zal controleren of het dier honger heeft.
‫Als dat zo is, zal het de naam afdrukken en zeggen dat het aan het eten is en als het geen honger heeft, zal het
‫zeggen dat de naam geen honger heeft.
‫De naam is dus trouwens eigendom van ons dier.
‫Dus deze naam eigenschap van het dier.
‫OK, dus dat wordt onze eetmethode en we gaan het ook virtueel maken.
‫En dan nog een virtuele methode die zal zijn om te spelen.
‫OK, dus deze virtuele methode, zoals die in feite de naam zal zeggen, wordt op de console gespeeld.
‫Nu gebruiken we een aantal zeer eenvoudige uitspraken over de rechte lijn, dit kan natuurlijk een stuk ingewikkelder zijn.
‫OK, dus dit is gewoon om het geheel te vereenvoudigen en het menselijker begrijpelijk te maken, om zo te zeggen,
‫want spelen en eten en zo, dit is iets dat we direct kunnen begrijpen omdat we het
‫in ons leven hebben gezien en we hebben het gedaan onszelf, evenals het lezen van gegevens uit een database of
‫iets dergelijks.
‫Dat is niet iets dat we meestal in het echte leven zien.
‫Oke.
‫Dus laten we nu onze klassen definiëren die zullen worden afgeleid van dieren, zodat ze zullen erven van de
‫dierenklasse.
‫Dus laten we doorgaan en controle K gebruiken en onze gemeenschappelijke valuta bekijken.
‫En dit zal dan het scherm openen waar we vervolgens een klas kunnen maken of gewoon een klas
‫kunnen maken.
‫Anders ga ik een hondenklas maken en deze klas zal zo van dieren erven.
‫Nu kun je al zien dat er geen argument is gegeven dat overeenkomt met de vereiste
‫formele parameternaam van de diernaamreeks.
‫We moeten hier dus een constructor maken.
‫Dus laten we doorgaan en een eenvoudige constructor maken, die dezelfde structuur zal volgen.
‫Het zal de naam en de leeftijd hebben en het zal een goed gebruikte basisnaam hebben, zodat we dezelfde constructor kunnen gebruiken die we
‫dat dier hebben gedefinieerd.
‫Dus nu ga ik deze nieuwe eigenschap genaamd Abie gebruiken of is gelukkig en dit zal een boolean zijn.
‫Dit slaat in principe gewoon op als het dier in dit geval de hond gelukkig is.
‫Dus het zal waar zijn als de hond gelukkig is en honden gelukkige dieren.
‫Dus standaard zal de hond blij zijn.
‫Oke.
‫Laten we nu de ITW-methode overschrijven.
‫OK, dus laten we gewoon de virtuele methode overschrijven, eten, en daarom gebruiken we dit opheffingssleutelwoord.
‫OK, dus algemeen belang, zoals een normale methode, maar we voegen dit vervangende toetsenbord toe.
‫Dus negeer ongeldige ITW dezelfde twee of vergelijkbaar met wat we hier hadden waar we deze methode ook hadden.
‫Maar hier gebruikten we een virtueel toetsenbord.
‫Met dit virtuele toetsenbord kunnen onze subklassen, onze ervende klassen van de kinderen, het overschrijfwoord gebruiken om
‫in feite de functionaliteit ervan te overschrijven.
‫Als je nog steeds de basisfunctionaliteit van de bovenliggende klasse van de dierklasse wilt noemen, moeten we in
‫dit geval de gebaseerde DOT eat OK gebruiken, base zal zeggen OK, de methode van de base genoemd en de basis zal goed zijn, zie
‫je hier dier.
‫Dus als u dubbelklikt op de basis en deze is gemarkeerd, kunt u zien dat dat dier ook is
‫gemarkeerd omdat dier uw basisklasse is.
‫Als je de control-toets HELT ingedrukt houdt en op de basis klikt, springt hij naar de dierenklasse, want dat
‫is de basisklasse.
‫En je kon zien dat er drie referenties zijn van onze basisklasse en dat is hier, deze basis,
‫evenals deze basis en dit dier hier bovenaan.
‫OK, dus op dit punt gebruiken we in feite onze basisklasse hier, de basisklasse-functionaliteit.
‫We overschrijven niets.
‫Dus eigenlijk zeggen we dat een hond op dezelfde manier is als elk ander dier.
‫Dus niets bijzonders hier.
‫Laten we nu eens kijken naar de methode om geluid te maken, want deze zal heel anders zijn
‫omdat de hond geluiden goed moet maken en zijn manier om geluiden te maken, zal zijn.
‫Het kan ook inslag zijn of wie voor wat dan ook.
‫Uw hond maakt echter graag geluiden.
‫En zo zal in mijn geval de hond een geluid maken.
‫Dit zal dus voor elk dier anders zijn.
‫OK, dus elk dier zal een verschil maken.
‫En daarom overschrijven we ons maakgeluid.
‫Nou, met goed, dit klinkt misschien dat we hier hadden, we overschrijven het met onze individuele implementatie voor
‫onze hond.
‫En laten we nu hetzelfde doen met spelen, want de hond wil alleen spelen als hij blij is, dus laten we aannemen dat
‫dat het geval is.
‫Dus hier, als we naar spel kijken, staat er dat de hond aan het spelen is, maar ik ben niet blij met dit resultaat.
‫Laten we zeggen dat een hond alleen zal spelen als het een gelukkige hond is.
‫Dus wat we kunnen doen, is dat we woordspelingen kunnen negeren en controleren of de hond gelukkig is en dan pas spelen.
‫We hebben dus de basisdierfunctionaliteit al overschreven met de functionaliteit.
‫Nou ja, met onze eigen functionaliteit voor de hond of onze unieke functionaliteit voor de hond waar we een voorwaarde aan
‫hebben toegevoegd.
‫Maar dit kan van alles zijn.
‫U bent niet beperkt tot een voorwaarde.
‫Dit kan een heel ander soort implementatie zijn.
‫Je hoeft niet eens basisspel te gebruiken, dus je bent helemaal vrij om te gebruiken wat je maar wilt.
‫Bijvoorbeeld, in de make sound-methode kun je zien dat we geen base make sound gebruiken omdat, nou ja, in de
‫make sound-methode, er niets is om aan te roepen.
‫Er is hier dus niets interessants.
‫Maar zelfs als dat zo was, hoeven we base make out of base play niet te callen.
‫We zouden hier iets heel anders kunnen implementeren als we willen.
‫Oké, dus dat wordt onze hond.
‫Laten we nu echt doorgaan en die twee klassen opslaan en ermee werken in ons programma CSS-bestand.
‫OK, dus hier is dit allereerst, maak een hond zoals, dus ik ga de hond noemen, wat een nieuwe
‫hond zal zijn.
‫Die de naam Siff krijgt en de hond wordt 50 jaar, dus een mooie oude hond en nu.
‫We kunnen iets schrijven als zodat we toegang hebben tot het eigendom van de hond, zoals zo rode lijn, hondennaam, zodat
‫we de naam van de hond en de leeftijd van de hond kunnen krijgen met behulp van hond, hondennaam en hond punt h.
‫En dan kunnen we bijvoorbeeld spelen en eten.
‫Oké, laten we dat heel snel doen, honden spelen, honden eten.
‫Dus laten we dit uitvoeren.
‫En we konden burgers zien, 15 jaar oud, surfers die speelden, surfers die aten.
‫OK, dus spelen en het werkte helemaal goed.
‫Natuurlijk kunnen we ook gedokterd gebruiken.
‫En geluid maken.
‫Dus dit zou dan de hond laten klinken.
‫Laten we dit uitvoeren.
‫En je ziet de voorraad zegt doos.
‫Oke.
‫Dus laten we snel samenvatten en kijken hoe dit verschilt van het voorbeeld dat we in de
‫vorige video hadden, dus we hebben onze basisklasse en zijn basisklasse heeft een aantal eigenschappen, en het heeft ook een aantal
‫methodes van functies, dus spreken.
‫Dus hier om geluid te maken, bijvoorbeeld de AED-methode enzovoort, en we maken ze virtueel
‫door het virtuele trefwoord toe te voegen om ze veranderlijk of overprikkelbaar te maken in de ervende klasse.
‫Dus Dogs onterft een klasse of een subklasse, en deze subklasse stelt ons in staat om nu een specifieke methode uit de
‫basisklasse te overschrijven met behulp van het override-sleutelwoord.
‫Dus dat zal nu.
‫Overschrijf de functionaliteit zodat deze de functionaliteit of de code van de huidige methode vervangt, behalve dat u natuurlijk
‫de ruimte gebruikt die elk is.
‫Dus wat zal doen, is dat het in feite gewoon de eetmethode van de basisklasse aanroept, wat betekent van de
‫ouder.
‫Maar je bent vrij om hier je eigen code te implementeren.
‫U hoeft de basisklasse niet te bellen.
‫U kunt natuurlijk een voorwaarde toevoegen zodat de functionaliteit van de basisklasse in een specifieke voorwaarde wordt
‫aangeroepen.
‫Of u kunt de code die u wilt binnen uw overschrijfmethoden schrijven en dan is er iets
‫anders.
‫En dat is dat we hier code aan onze constructor toevoegen voor onze.
‫Subclausule, OK, dus deze ervende klassehond.
‫Gebruikt aan de ene kant dezelfde eigenschappen die onze basisklasse gebruikt, maar heeft het tegelijkertijd een eigen implementatie,
‫wat moet er gebeuren als een hond is gemaakt?
‫Dus als een hondenobject eenmaal is gemaakt, en in ons geval, is het gewoon om te zeggen dat de hond gelukkig zal zijn.
‫Oké, dat was het voor deze video, we gaan natuurlijk veel meer kijken naar overerving, want er valt
‫nog veel te leren.
‫Dus tot ziens in de volgende video.