‫In deze video ga je leren over overerving in C Sharp of in programmeren in het algemeen, ik ga
‫proberen het supereenvoudig te houden omdat het behoorlijk ingewikkeld kan worden als je ernaar kijkt, omdat er
‫veel gaande is.
‫Maar ik ga het zo veel mogelijk vereenvoudigen, oké, want het idee van overerving is eigenlijk de
‫herbruikbaarheid van code.
‫En dit stelt ons in staat om niet alleen onze eigen code te verkleinen, maar ook de code van andere
‫ontwikkelaars of zelfs van andere naamruimten direct te verminderen zonder dat we veel code handmatig opnieuw en opnieuw en opnieuw moeten schrijven,
‫wat er eerder was.
‫En dit vermindert echt herhaalde of overtollige code.
‫OK, dus het idee van overerving is in feite een fundamenteel concept van objectgeoriënteerd programmeren.
‫Hiermee kunt u een onderliggende klasse definiëren die het gedrag van een ouderklasse opnieuw gebruikt of erft, uitbreidt of
‫wijzigt.
‫De klasse waarvan de leden worden geërfd, wordt de basisklasse genoemd.
‫De klasse die de leden van de basisklasse erft, wordt de afgeleide klasse genoemd.
‫Oké, dus wat betekent dit?
‫Welnu, in eenvoudige bewoordingen, als je meer dan één klasse hebt met dezelfde code of
‫functionaliteit, maar het verschilt enigszins, kunnen we deze herhaalde of overtollige code in een aparte klasse plaatsen
‫en onze klasse er zo van laten erven.
‫Deze code kan de functionaliteit van de methode zijn, om zo te zeggen, of eigenschappen, die de attributen zijn van
‫onze klassen.
‫Laten we een voorbeeld bekijken en daarom maak ik hier een nieuw project aan, dat ik Inheritance Demel
‫noem.
‫Oke.
‫Dus laten we doorgaan en naar dit voorbeeld kijken.
‫Dus meestal als je met meerdere klassen werkt, ga je door en maak je hier een nieuwe klas aan.
‫Oké, laten we dat hier ook doen.
‫Je zou natuurlijk de klasse in hetzelfde bestand kunnen maken, maar dat is geen goede gewoonte.
‫Dus laten we doorgaan en deze klas radio noemen.
‫Oke.
‫Dus hier is de klas zeg radio advertentie.
‫En nu hebben we deze radioklasse, die dezelfde naam heeft.
‫OK, dus beide klassen, het programma vraagt waar we onze hoofdmethode hebben, wat het startpunt
‫is van onze applicatie en de radioklasse hebben dezelfde vorm.
‫We gaan dus twee lessen volgen.
‫De ene zal radio zijn en de andere zal tv zijn.
‫Laten we aannemen dat we een aantal eigenschappen hebben.
‫Dus bijvoorbeeld een boolean die de staat van de radio bepaalt als hij aan staat en dan het merk van
‫de radio, net als een Panasonic of wat voor andere merken er ook zijn.
‫En dan hebben we hier een eenvoudige constructor.
‫Je moet dus zeker een goed begrip hebben van de kernconcepten van lessen.
‫Als je overerving volledig wilt begrijpen, is dat over het algemeen iets dat ik zou aanraden om
‫te begrijpen voordat je overerft, omdat het op elkaar voortbouwt.
‫OK, dus dan wil ik twee methoden hebben, omdat dit in feite de functionaliteit zal zijn.
‫Dus de ene gaat de radio aanzetten, het zal de inschakelmethode zijn en de andere zal de
‫uitschakelmethode zijn.
‫U kunt de radio dus aan- en uitzetten of aanzetten met deze twee methoden.
‫En dan hebben we een andere methode waarmee we naar de radio kunnen luisteren.
‫OK, dus we hebben deze methode hier genaamd Luister Radio en het zal controleren.
‫Staat de radio nu aan?
‫Dus dit staat hier op het terrein, deze boolean, gaat het echt waar zijn?
‫En als dat waar is, dan kunnen we naar de radio luisteren en de manier waarop we gaan aangeven dat
‫we naar de radio luisteren, is gewoon met deze rode lijnverklaring op de console die zegt dat we naar
‫de radio luisteren en anders gaan we afdrukken deze foutmelding dat de radio is uitgeschakeld.
‫Schakel deze eerst in.
‫Oké, dus voordat we ernaar kunnen luisteren, moeten we het aanzetten.
‫Oke.
‫Dus dat is nu onze radio.
‫Stel je nu voor dat je een andere klas hebt, en dat zal het zijn.
‫De televisie.
‫OK, dus laten we doorgaan en een nieuwe klas maken, en daarom kun je hierheen gaan om een klas toe te voegen en dan toe te
‫voegen en deze klas een naam te geven.
‫Ik ga het televisie noemen.
‫En nu in deze klas, zal ik doorgaan en een paar eigenschappen hebben die vergelijkbaar zijn met wat we hier hadden.
‫Dus eigenlijk heb ik ook de statussen als het is in- of uitgeschakeld.
‫Dus laten we die twee eigenschappen hier toevoegen.
‫Dan heb ik een eenvoudige constructor waarmee ik die waarden kan instellen wanneer ik een nieuw
‫tv-object maak.
‫Dus hier is het zowel aan als String Brand, die de eigenschappen instelt.
‫Dan zal ik andere methoden moeten gebruiken, zodat ik de tv aan en uit kan zetten, vergelijkbaar met wat ik deed in de radio,
‫zodat ik deze code in principe kan kopiëren.
‫Maar het zal iets anders zijn omdat we de opmerkingen hadden die hier radio zeiden, maar nu wordt dit
‫tv.
‫Dus deze methode zet de tv aan en deze zet hem uit of uit.
‫OK, dus dan hebben we gewoon een andere methode nodig waarmee we tv kunnen kijken en het zal iets doen dat erg lijkt
‫op wat onze radio doet.
‫Hiermee kunnen we alleen tv kijken als de tv aan staat.
‫Als het is uitgeschakeld, moeten we eerst de tv aanzetten.
‫OK, dus nu hebben we deze twee klassen en als je ernaar kijkt, lijken ze erg op elkaar.
‫Er zijn dus veel dingen die precies hetzelfde zijn, eigenlijk omdat dit pand er net zo goed op staat als
‫dit merk.
‫Ze zijn hetzelfde.
‫We hebben ze in beide klassen.
‫Dus eigenlijk hebben we redundante code.
‫We moeten een heleboel code kopiëren en plakken en het is min of meer hetzelfde.
‫Dus hoe kunnen we ervoor zorgen dat we niet veel code hoeven te kopiëren en plakken en code te herschrijven en in feite overbodige
‫code hebben?
‫Nou, dat is het hele punt van het concept van overerving.
‫Dus erfenis komt te hulp.
‫We kunnen dit probleem oplossen door een derde klasse genaamd elektrisch apparaat te maken.
‫Dit bevat alle gedeelde functionaliteiten en eigenschappen van een elektrisch apparaat dat we hebben.
‫Dus laten we die eens bekijken.
‫Wat zijn degenen die we hebben die hetzelfde zijn?
‫Dus wat zijn de eigenschappen die hetzelfde zijn voor zowel onze tv als de radio?
‫In ons geval zijn het eigenlijk alle eigendommen, maar in dit geval hoeven het ze niet allemaal te
‫zijn.
‫Het zal zijn omdat we niet meer eigendommen hebben.
‫Maar de twee eigenschappen die we daar hebben, zullen hetzelfde zijn.
‫Zo is aan en Brent zijn beide eigenschappen die zowel in tv als in radio voorkomen.
‫Dus onze nieuwe klasse zou die twee eigenschappen moeten hebben.
‫En dan hebben we nog de twee methoden waarmee we de tv aan kunnen zetten en de radio aan of de radio uit
‫en de tv ook uit.
‫OK, dus voor jou, een kleine oefening als je dit wilt proberen, want ik neem aan dat je op dat moment geen rol en
‫programmering hebt, maar je zult je een stuk zekerder voelen als je dit probeert.
‫Dus ga je gang en maak een klasse die al deze eigenschappen en deze methoden heeft waarmee we alles kunnen laten zien die tussen
‫de twee klassen worden gedeeld, maak ze in een aparte klasse en noem deze klasse elektrisch
‫apparaat.
‫Eigenlijk kun je het noemen zoals je wilt, maar ik ga het zo'n elektrisch apparaat noemen.
‫OK, dus ik hoop dat je de video plaatst en het hebt geprobeerd, dus ik ga een nieuwe klas maken en
‫trouwens, je ziet natuurlijk dat je de snelkoppeling Casey kunt gebruiken.
‫Dus laten we dat in dit geval doen, controle, zie je?
‫En dit zal dit venster hier openen en laat me het veranderen in elektrisch.
‫Zo'n apparaat, en nu heeft dit glas de eigenschappen die we delen met de twee andere klassen, dus plaatsen we ze
‫hier, de boolean die de toestand van het elektrische apparaat bepaalt, is het
‫ingeschakeld of niet?
‫En dan het merk van het toestel.
‫En dan hebben we natuurlijk een constructeur nodig.
‫Het elektrische apparaat staat dus aan.
‫En Brent en ten slotte hebben we de functionaliteit die methoden zijn.
‫Dus wanneer je functionaliteit hebt, zet je ze in methoden en de functionaliteit is om iets aan
‫of uit te zetten.
‫Dus wanneer er een actie plaatsvindt met je klas of met het object dat je gebruikt,
‫moet je methoden gebruiken.
‫Nogmaals, dat is wat we hier doen.
‫We gebruiken dus een methode om iets aan te zetten, in dit geval het elektrische apparaat, en om het uit of aan
‫te zetten en uit te schakelen.
‫Oké, dus dat is eigenlijk wat we hier doen.
‫Dus nu we onze share-eigenschappen en -methoden in één klasse hebben, laten we de
‫andere klasse van de tv- en radioklassen die van deze klasse zijn geërfd, of met andere woorden, deze klasse uitbreiden.
‫OK, dus dit is gewoon een andere term die je hier kunt gebruiken.
‫Dus onze tv en onze radio zullen nu de klasse van elektrische apparaten uitbreiden.
‫Dus hoe kunnen we dat doen?
‫Nou, laten we beginnen met de radio, want de tv wordt dan een kleine uitdaging voor je
‫waar je het zelf moet doen.
‫Dus hier heb je een dubbele punt gebruikt en dan is de naam van de klasse die je wilt erven
‫van elektrisch apparaat de klasse die ik nu zal overnemen van waar onze radio de functionaliteit van de
‫elektrische apparaatklasse zal uitbreiden.
‫OK, dus dubbele punt en dan de naam van de klasse die je wilt uitbreiden
‫en wat belangrijk is, dit is natuurlijk dat deze klasse in dezelfde naamruimte moet staan of dat je de naamruimte hier moet
‫toevoegen.
‫Dus in ons geval gebruiken we die niet.
‫We gebruiken gewoon het systeem.
‫Maar aangezien we ons in dezelfde naamruimte bevinden, dus de klasse elektrische apparaten in dezelfde naamruimte staat als radio en
‫tv, kunnen we het gewoon zo doen.
‫Maar nu kunnen we zien dat onze Bolian hier een waarschuwing heeft.
‫Dus als je over je ik zweeft. D. , dus Visual Studio gaat je vertellen dat Radio Dot op de hoogte is.
‫Elektrische apparaten van geërfde leden zijn in gebruik.
‫Het nieuwe sleutelwoord als verbergen bedoeld was.
‫Dus eigenlijk gebruiken we dezelfde eigenschapsnaam en hier wil je dat vermijden omdat je deze eigenschap, om zo te zeggen, al
‫hebt omdat je het erft van het elektrische apparaat.
‫Dus nu kun je het gewoon verbergen of negeren met deze die je hier hebt gemaakt.
‫Als je iets met exact dezelfde naam wilt gebruiken, maar het zich op de een of andere manier anders zou moeten gedragen,
‫dan kun je dat doen, hoewel dat een goede gewoonte is, hangt natuurlijk af van het gebruiksscenario.
‫Dus dit komt omdat de radioklasse nu twee eigenschappen met dezelfde naam bevat die we verbergen of bedekken.
‫Dat is hier een andere term, de eigenschappen die we hebben geërfd van de klasse van elektrische apparaten.
‫We verwijderen dus de overbodige code die we niet meer nodig hebben.
‫Dus laten we daar vanaf komen.
‫En natuurlijk is de redundante code niet alleen het toewijzen of maken van de eigenschappen, maar ook het hebben van
‫deze methoden hier.
‫Dus laten we die ook maar wegdoen.
‫Nu hebben we nog een fout die hier verschijnt, en dat is deze radioconstructor die een probleem lijkt te
‫hebben.
‫Er staat dat er geen argument is gegeven dat overeenkomt met de vereiste formele parameter van elektrisch
‫apparaat, boogpees van elektrisch apparaat.
‫Dus wat is dit elektrische apparaat, die elektrische boogpees?
‫Nou, het is deze hier.
‫Het is deze constructeur.
‫Aangezien alle eigenschappen afkomstig zijn van de basisklasse en onze basisklasse een constructor bevat, kunnen we het
‫basissleutelwoord gebruiken om onze basisklasse en zijn constructorargumenten door te geven, omdat dit de enige twee eigenschappen zijn die we
‫hebben en onze constructor in de onderliggende klasse zal een leeg lichaam hebben.
‫Oké, dat is dus veel gepraat.
‫Maar wat dit in feite betekent, is omdat onze radio-constructor niet complexer is dan
‫de basis, we kunnen gewoon doorgaan en basis zeggen.
‫En hier is op en Brent.
‫Zoals zo en dan hebben we geen body nodig voor onze radio, dus deze constructeur zal in feite zeggen
‫dat deze aan staat, evenals de merkeigenschappen die worden doorgegeven aan het radio-object dat, wanneer het
‫is gemaakt, het doorgeeft aan het elektrische apparaat constructor, omdat onze radio in feite is geërfd van een elektrisch apparaat
‫en daarom kunnen we dat doen.
‫Dus we kunnen het gewoon doorgeven aan het elektrische apparaat.
‫En wat dat zal doen, is dat het in feite de eigenschappen instelt en afdrukt op basis van de waarden die
‫worden doorgegeven.
‫Oké, dit is dus.
‫Het meer gecompliceerde deel, maar de kracht hier is echt dat we geen overbodige code hoeven te
‫bouwen en, nou ja, het werk is voor ons gedaan, dus het bespaart ons echt veel tijd en het schrijven van code ook.
‫In een later voorbeeld zullen we zien hoe we de body van de constructor in de child-klasse kunnen
‫gebruiken om zijn eigen unieke eigenschappen te initialiseren, om de radioklasse hier snel opnieuw te benadrukken.
‫Is onze kindklas.
‫OK, dus de ervende klasse en het elektrische apparaat is onze ouderklasse, dus de basisklasse.
‫Dus we gaan erven zodat onze radio erft van een elektrisch apparaat, dus het kind erft van de ouder, eigenlijk hebben je ouders een
‫bepaald DNA en jij hebt hetzelfde DNA, maar je zult er iets meer aan hebben, om
‫zo te zeggen.
‫Zo zou je er dus over kunnen denken.
‫Oke.
‫Dus nu een kleine uitdaging voor jou.
‫Pas de tv-klasse zo aan dat deze ook van een elektrisch apparaat erft.
‫Dus positief.
‫En probeer dat alsjeblieft.
‫Oke.
‫Ik hoop dat je het geprobeerd hebt.
‫Dus eerst moeten we een elektrisch apparaat van Polan toevoegen, dan kunnen we de overtollige code verwijderen.
‫Dus de herhalende code, omdat we die al in onze basisklasse hebben.
‫En dit betekent dat we het ook direct in onze tv-les kunnen gebruiken.
‫En nu kunnen we dit hier ook aanpassen, door te zeggen dat we de gegevens gaan doorgeven aan onze basisklasse.
‫En dat hoeven we hier natuurlijk ook niet in te stellen.
‫Maar zoals ik in het latere voorbeeld al zei, we gaan kijken hoe we het lichaam toch efficiënt kunnen gebruiken.
‫En dat zal het in wezen zijn.
‫Nu kunnen we gewoon doorgaan naar ons programma, CSS-bestand en onze code hier controleren.
‫En door onze code te controleren, bedoel ik objecten van onze radio maken en deze testen.
‫Dus laten we doorgaan.
‫Een radio-object.
‫Ik ga deze op mijn radio noemen en dit wordt een nieuw radio-object.
‫Ik moet natuurlijk doorgeven of het aan staat.
‫Dus ik ga in het begin worden uitgeschakeld en ik ga zeggen dat het door Sony zal worden gemaakt.
‫Het merk wordt dus Sony.
‫Nu heb ik toegang tot de eigenschappen.
‫Je kunt hier alleen Eitam zien, de eigenschappen van mijn eigen radio, dat is het merk en dat is
‫op het terrein en ik heb ook toegang tot zijn methoden.
‫Dus inschakelen, uitschakelen.
‫Luister, radio.
‫En dan kun je ook zien dat er enkele methoden zijn die we nooit zelf hebben
‫gemaakt en die er gewoon vanaf het begin zijn, omdat elke klasse erft van de objectklasse en de objectklasse een
‫methode met twee strings heeft, evenals een get-type get code en gelijk is aan methode.
‫OK, dus deze methoden, ze zijn er voor elke afzonderlijke klasse die je maakt
‫in C Sharp, omdat we het eigenlijk niet zien, maar intern erft het van de objectklasse zoals zo, dus elke klasse erft
‫van de objectklasse en daarom hebben we deze verschillende methoden.
‫Maar laten we hem nu eerst aanzetten.
‫Dus hier, schakel in.
‫Dit zal onze radio aanzetten en nu kunnen we naar onze radio luisteren, dus hoor mijn radio dot listen radio.
‫Laten we dit nu uitvoeren, zodat we naar onze radio kunnen luisteren.
‫Dus daar luisteren we naar de radio, dus we zetten de radio aan, laten we nu de radio niet aanzetten
‫en naar de radio luisteren en dan staat er radio uitgeschakeld.
‫Schakel deze eerst in.
‫Goed, dus nu.
‫Laten we hetzelfde doen met onze tv.
‫Laten we doorgaan en een tv-object maken.
‫Ik noem dit op mijn tv, die een nieuw tv-object wordt, en deze wordt ook uitgeschakeld
‫en wordt een Samsung-apparaat.
‫En laten we nu doorgaan en mijn tv gebruiken, die aan staat om hem aan te zetten.
‫En dat heet dan de methode TV kijken.
‫Zoals, dus laten we dit nu uitvoeren en we zullen zien dat nu onze tv is ingeschakeld en we ernaar kijken terwijl we naar
‫de radio luisteren.
‫Een hele opgave daar dus.
‫Maar eigenlijk doet onze code wat we willen.
‫Dus nu zie je dat we de inschakelmethode voor zowel de radio als de tv noemen, hoewel als we
‫naar de tv-klasse kijken, deze deze methode niet heeft.
‫Er zit dus geen schakelaar op.
‫Nou, schakel de methode in of uit.
‫De radio heeft die methoden ook niet, maar dat komt omdat ze erven van
‫het elektrische apparaat, dat deze methoden aan en uit heeft zodat we het kunnen gebruiken.
‫Dus eigenlijk gebruiken we hier de methode van de basisklasse.
‫Dus hier, methode van basisklasse.
‫En hier gebruiken we de methode van kindklasse.
‫Dus de inschakelmethode komt van de ouder plus en de tv-methode is van de kind plus.
‫Dus nu kunnen we de code maken die uniek is voor de klas en niet repetitief is, om zo te zeggen, zowel rechtstreeks
‫in de tv-klasse als in de radioklasse.
‫Maar alles wat hetzelfde is en relevant zal zijn voor elektrische apparaten in het algemeen, kunnen
‫we hier creëren.
‫Er komt veel meer bij overerving kijken en natuurlijk gaan we dat allemaal onderzoeken in dit
‫hoofdstuk.
‫Dus tot ziens in de volgende video.