‫Welkom terug en deze video, het gaat allemaal over overerving, en we gaan door en
‫maken een klas die ik gewoon post ga noemen, dus een nieuwe klas en het wordt een post.
‫Dus stel je voor dat het een bericht op sociale media is, zoals een Twitter-bericht of een Facebook-bericht of wat voor soort bericht dan
‫ook.
‫En het idee is dat ik van post wil erven en ik wil zoiets maken als een afbeeldingspost of
‫later een videopost.
‫En dat soort dingen zullen ons in staat stellen het concept van overerving een beetje beter te begrijpen.
‫En dat kun je in de toekomst op verschillende objecten in verschillende situaties toepassen.
‫Dus allereerst heeft een bericht een variabele, die ik privé statisch ga maken in de huidige post-ID.
‫Dus deze wordt een veld van dat bericht en het is statisch.
‫Het is dus ook buiten dit bericht beschikbaar en het wordt aangemaakt zodra de toepassing is gestart.
‫Rechts.
‫Dus wat we kunnen doen, is in de eerste plaats enkele eigenschappen creëren.
‫En nu is het idee achter eigenschappen, zoals je weet, dat ze je wat meer informatie over het
‫object geven.
‫Rechts.
‫Dus in ons geval, als ik een postobject maak, zijn er bepaalde informatie die we echt willen hebben.
‫We willen bijvoorbeeld zowel de ID weten als een edman, als programmeur, niet zozeer omdat een gebruiker en gebruiker niet geïnteresseerd
‫zijn in de post-ID, maar als beheerder of als het programma dat je zou moeten zijn omdat elke post
‫zou moeten worden geïdentificeerd en het moet een unieke ID hebben.
‫Dus we hebben ID's, we hebben een titel nodig.
‫Dus de Post heeft bijvoorbeeld een titel, misschien een beschrijving of tekst, zoiets.
‫Dan moeten we weten wie dat bericht heeft gestuurd en of het openbaar moet zijn of niet.
‫Natuurlijk valt er nog veel meer te weten over de post, dus er kunnen nog veel meer eigenschappen in
‫de post staan, maar we gaan het voorlopig simpel houden.
‫Dus ik ga de eigenschappen hier beschermd maken.
‫En we hebben nog geen gebruik gemaakt van beschermde eigenschappen.
‫Maar beschermen betekent uiteindelijk dat dat alleen door deze klasse kan worden gebruikt, maar door een postklasse en eventuele afgeleide
‫klassen.
‫Dus klassen die voortkomen uit post.
‫Dus ik ga door en maak de eerste, die de ID wordt.
‫Dus int i d en we gaan get en set gebruiken.
‫Dan nog een eigendom, dus ik ga hier een prop gebruiken en het zou een string
‫moeten zijn en ik ga het titel noemen en zoals het eerder zou moeten worden beschermd, dan ons eigendom en ik ga
‫string gebruiken opnieuw en deze wordt op gebruikersnaam verzonden.
‫Dus wie heeft het gestuurd?
‫En het wordt ook beschermd.
‫En tot slot, een eigenschap genaamd is openbaar.
‫Het is dus een boolean omdat het maar twee waarden kan hebben.
‫Dus of het is openbaar of het is niet openbaar.
‫Dus we hebben gewoon deze eigenschappen.
‫Rechts.
‫Dus nu maken we een standaardconstructor en er is iets te weten over de standaardconstructor, indien
‫afgeleid, als een conceptklasse niet expliciet een constructor van een basisclausule aanroept, wordt de standaardconstructor
‫impliciet aangeroepen.
‫Daarom maken we er hier een.
‫Daarom maken we een openbaar bericht.
‫En nu komt dat bericht goed, omdat we hier geen parameters krijgen.
‫Het wordt gedefinieerd of we stellen de waarden hier in.
‫Het zal dus nul zijn.
‫Dan is de titel bijvoorbeeld mijn eerste post of misschien met lege ruimtes.
‫Zo'n eerste bericht, is het dan openbaar?
‫Nou, laten we zeggen waar omdat we het willen zien en dan verzenden via gebruikersnaam.
‫Goed verzonden door mij.
‫Dus de respondent in dit geval.
‫Dus wanneer we nu een bericht maken, wordt het gewoon dit bericht hier.
‫Het wordt dus mijn eerste post.
‫Op dat moment wil ik een andere instantie hebben, een constructor met verschillende parameters.
‫Dus ik wil berichten maken waarin ik die dingen echt kan definiëren.
‫Ik definieer de ID niet, maar ik kan de titel definiëren.
‫Ik kan zeggen of het openbaar is en of het met welke gebruikersnaam is verzonden.
‫Dat kun je je dus voorstellen.
‫Laten we zeggen dat je een klein programma voor sociale media schrijft en je wilt de mogelijkheid hebben om te
‫posten en dan moet je die informatie verzenden wanneer je een bericht maakt.
‫Dus de gebruiker maakt een bericht en krijgt een automatisch gedefinieerde ID, dan krijgt het een automatisch gedefinieerde waar het een gedefinieerde
‫titel krijgt op basis van wat de gebruiker heeft ingevoerd.
‫Het is openbaar op basis van wat de gebruiker heeft aangevinkt, of hij heeft besloten het openbaar te maken of niet, en
‫het wordt door hem verzonden.
‫Dus dat zijn gewoon gegevens die worden doorgegeven wanneer elk bericht wordt gemaakt.
‫Laten we nu een instantieconstructor maken die drie parameters heeft.
‫Dus ik ga een openbaar bericht maken en hier ga ik de tekenreekstitel gebruiken, bool is openbaar en
‫tekenreeks verzonden via gebruikersnaam.
‫En hier zal ik de ID instellen en daarvoor heb ik iets nodig.
‫Dus ik ga het nu gewoon op nul zetten.
‫Maar ik heb een extra methode nodig die altijd een nieuwe ID voor elk bericht zal maken.
‫We zullen zo zien hoe dat werkt.
‫Dus deze titel wordt de titel die is verzonden.
‫Mijn gebruikersnaam wordt verzonden door een gebruikersnaam met een niet-bewaarde letter hier en deze die openbaar
‫is, is openbaar en niet de eigenschap, maar deze parameter.
‫Dus nu zei ik dat ik niet wil dat het nul is.
‫Het idee moet uniek zijn.
‫Dus de beste manier is om een methode te maken die beschermd gaat worden en heet get next.
‫Wat dat zal doen, is dat het gewoon de volgende ID retourneert, wat de huidige post-ID betekent en hier
‫verhogen we daarvoor.
‫Dus elke keer dat het wordt aangeroepen, gaat het zichzelf met één verhogen.
‫Dus deze hier, deze huidige post-ID wordt met één verhoogd.
‫Dus in plaats van hier nul in te stellen, gaan we de volgende ID bellen of de volgende ID-methode krijgen.
‫Wat zou je nog meer willen hebben in zo'n programma waar je iets kunt posten terwijl ik denk dat het de mogelijkheid heeft
‫om een bericht aan te passen?
‫Dus voor nu hebben we een bericht gemaakt en we zouden behoorlijk ongelukkig zijn als we dat bericht niet kunnen veranderen.
‫En tja, dat is iets dat echt gebeurt.
‫En ik denk wat Snapchat dat je maakt een foto en dan is het daar, je kunt die foto bewerken.
‫Ik weet niet zeker of je de tekst kunt bewerken, maar hier willen we de tekst kunnen bewerken,
‫dus we zullen een nieuwe methode maken, public void update, en die moet de titel bevatten.
‫En de schaal is openbaar, want als je erover nadenkt, wat moet de gebruiker dan kunnen updaten?
‫Hij zou de ID niet moeten kunnen, en hij zou ook niet in staat moeten zijn om de gebruikersnaam bij te werken omdat deze door hem is
‫verzonden.
‫Dus hij heeft een gebruikersnaam en het zou geen invloed moeten hebben op de update van een bericht.
‫Dus hier gaan we het bericht bijwerken en het betekent dat we alleen de titel en de boolean gaan
‫veranderen, of het nu openbaar is of niet.
‫En hier zeggen we gewoon dat deze titel titel wordt en deze die openbaar is, zal net zo
‫openbaar zijn als we hier hebben.
‫Een post-post is een blauwdruk, terwijl deze klasse een blauwdruk is van een post-instantie.
‫Dus wanneer we iets posten dat dat zelf is, is die instantie de post en als we de titel ervan veranderen, veranderen
‫we de titel van die specifieke post.
‫En als we veranderen, of het nu openbaar is of niet, veranderen we de publiciteit van dat specifieke bericht.
‫OK, dus dat stelt ons in staat om de titel en de publiciteit van een bestaande post bij te werken.
‫Dus de volgende die ik wil maken, is een virtuele methode-override van twee strings die van het systeem
‫dat object is geërfd.
‫Dus systeem, dat object is een klasse die hier in systeem voorkomt.
‫Dus dat kunnen we gebruiken.
‫Het is binnen C sharp en dat kunnen we gewoon gebruiken.
‫En er is een methode genaamd string of eigenlijk kunnen we vanaf daar de two string-methode aanroepen.
‫Dus systeem, het object heeft een methode met twee strings, en we willen
‫die overschrijven omdat elke afzonderlijke klasse, dus ook onze klasse, erft van die objectklasse.
‫Dus systeem, dat object is een klasse waarvan we kunnen erven.
‫Dus hier, bijvoorbeeld dat object, kunnen we daarvan erven, of we erven eigenlijk elke klasse daarvan.
‫Dus wat we nu kunnen doen, is dat we een van zijn methoden kunnen negeren.
‫Dus public override string en two string, zoals je kunt zien, stelt dit al voor.
‫Dus het zegt dat de tekenreeks die het huidige object vertegenwoordigt, iets teruggeeft dat zich binnen de objectklasse
‫bevindt.
‫En zoals je kunt zien, bestaat er zoiets als Return Bayes to string.
‫Dus de basisklasse heeft een methode met twee strings.
‫En als we dat gewoon doen, dan zal dit vrijwel niets betekenen, omdat we
‫toch gewoon de twee-stringmethode van de basisklasse zullen gebruiken.
‫Maar we kunnen ze veranderen, zodat we kunnen aanpassen in plaats van terug te geven wat de basisklasse zou retourneren.
‫We willen ons eigen ding doen.
‫Dus we gaan een tekenreeks met dat formaat gebruiken om een tekenreeks op te maken die bepaalde informatie zal
‫bevatten.
‫Dus het wordt het idee, de titel en wie het stuurt.
‫Dus ik ga dit soort informatie gewoon gebruiken.
‫Dus het wordt deze ID.
‫Dus het idee, dan dit de titel en ten slotte dit dat door gebruikersnaam is verzonden.
‫Dat is dus wat terugkomt.
‫Dus wanneer we string gebruiken, zal het niet alleen wat informatie over het object retourneren, maar het
‫zal het retourneren in het standaardformaat of in ons formaat dat we hebben gemaakt.
‫Dus dit is ons formaat, toch.
‫Dus.
‫Laten we een object van die klasse maken, dus laten we verder gaan met ons programma en dan hier een bericht
‫maken.
‫Dus post post één is nieuwe post, en hier kan ik wat informatie invoeren waar ik het kan achterlaten.
‫Dus als ik het laat, is dat de standaardconstructor die wordt aangeroepen.
‫Dus die hier.
‫En als ik dat niet doe, wordt er een andere gebeld.
‫Dus laten we zeggen dat ik iets heb gepost.
‫Bedankt voor de verjaardagswensen.
‫Dus iedereen wenste me een gelukkige verjaardag.
‫Dus ik ga je heel erg bedanken en ik wil het halen omdat ik wil dat mijn vrienden het zien, dus het
‫zou openbaar moeten zijn.
‫En dan is Dennis Pan, Utah degene die het stuurt.
‫Natuurlijk kunnen we een gebruikersklasse hebben die alle handelingen doet en we kunnen eenvoudig controleren welke gebruikers zijn ingelogd
‫of wat dan ook.
‫Maar voor nu gebruiken we hier gewoon een hard gecodeerde string.
‫Dus het wordt Dennis Bunnytown.
‫Dus dat is een nieuwe post die we hier hebben.
‫En nu kunnen we doorgaan en dat op de console schrijven.
‫Dus s. W. en ik ga zeggen post dot to string en hier natuurlijk de post.
‫Dus onze post-instantie.
‫Dus dit is onze post-instantie.
‫En ik belde de post een en het gaat iets schrijven op een console.
‫En omdat we willen zien wat het is, moeten we ons hier opnieuw uitlijnen.
‫Dus we willen gewoon de console open houden zodat we kunnen zien wat daar gebeurt en dat we, zoals je
‫kunt zien, één zijn, bedankt voor de verjaardag, die is door Dennis Pennetta.
‫En dit is het idee van dit bericht.
‫Dus dat betekent dat onze post hier.
‫Deze krijgt een nieuwe ID en de nieuwe ID wordt nul plus plus één of plus één, wat betekent dat het er maar
‫één is.
‫Dus daarom halen we deze hier.
‫Dus het idee is één, dan is dat om info te plaatsen.
‫En dat is degene die het toen stuurde, Pontotoc.
‫Dus nu hebben we een bericht en laten we nu doorgaan en overerving gebruiken, want tot nu toe, behalve
‫misschien deze twee string hier, is er eigenlijk geen overerving.
‫Dus eigenlijk alleen voor jou.
‫Dus je weet wat ik eerder zei, virtuele methode overschrijven van de twee string methode die wordt geërfd van het
‫systeem dat object.
‫Laten we nu een nieuwe klasse maken.
‫En dat zullen afbeeldingsposten zijn, want tot nu toe kunnen we alleen bepaalde, terwijl eenvoudige tekst plaatsen, maar in de
‫toekomst willen we ook afbeeldingen plaatsen.
‫En nu zou die afbeeldingspost een rijklasse moeten zijn van onze basisklasse-post, omdat deze klasse hier een heel eenvoudige klasse is
‫en we willen doorgaan en ervan erven.
‫Dus om van een andere klasse te erven, gebruik je Kolon en voer je de naam in van de klasse waarvan
‫je wilt erven.
‫Dus ik wil erven van post.
‫En dat stelt me in staat om al zijn functionaliteit te gebruiken.
‫Dat is best cool, want nu kan het zijn eigenschappen gebruiken.
‫Ik kan de variabelen gebruiken, behalve de constructor hier.
‫En ja.
‫Dus laten we doorgaan en dat doen en laten we de afbeeldingspost uitbreiden.
‫Dus zoals je weet, is het afgeleid van post en nu zou het een andere eigenschap moeten hebben met de naam Afbeeldings-URL en twee
‫constructors.
‫Dus dat is wat ik wil toevoegen.
‫Dus eerst heb ik hier een eigenschap nodig en het zal een string zijn met de naam image.
‫Jij bent de afbeelding die je URL van de afbeeldingspost zal zijn.
‫Dus laten we zeggen dat we iets posten en er staat een afbeelding in, dan is het automatisch of zou
‫het een afbeeldingspost moeten zijn en moet het een afbeeldings-URL hebben.
‫Dus een locatie waar die afbeelding wordt opgeslagen, die op onze servers kan staan of gewoon op internet.
‫Dus wat er ook is, we hebben deze nodig om deze afbeeldings-URL te hebben voor een afbeeldingspost.
‫Laten we nu zomaar een heel eenvoudig openbaar afbeeldingsbericht voor de constructor
‫maken.
‫Niks anders.
‫Zoals je kunt zien, zit er niets in.
‫Ik wil hier niets doen.
‫En toen heb ik hier nog een bericht gemaakt, of een afbeeldingspost-constructor, maar deze keer wil ik hier enkele parameters.
‫Dus het wordt een string titel string, stuur door gebruikersnaam string afbeelding je URL en eigenlijk ben je L en
‫Boulle is openbaar, dus ik wil die allemaal hebben.
‫En nu in de afbeeldingspost wil ik het idee opnieuw instellen.
‫Deze gedachte-ID is gelijk aan het krijgen van de volgende ID en dat is al best cool.
‫Waar komt dit idee in godsnaam vandaan en waar komt dit volgende idee vandaan?
‫Nou, het komt van de post.
‫Dus we nemen deze methode hier, deze beschermde methode.
‫We kunnen het hier gewoon noemen.
‫We kunnen het gebruiken alsof het van ons is.
‫Dus we hoeven niet eens iets te zeggen als post dot get next ID.
‫We zeggen gewoon: krijg het volgende idee.
‫En hetzelfde voor deze ID.
‫Dus elke afbeeldingspost heeft een ID, hetzelfde als de post zelf.
‫En dat geldt nu ook voor de titel.
‫Dus titel wordt titel.
‫Dan beginnen ze te verzenden op gebruikersnaam en worden verzonden op gebruikersnaam.
‫En tot slot, dit is openbaar, wordt nu openbaar.
‫Dat is best wel cool.
‫Die dingen kunnen we gebruiken.
‫Dat is geweldig.
‫En nu hebben we ook onze eigen eigenschap, onze afbeeldings-URL, en die hebben we hier.
‫Dus wanneer een afbeeldingspost wordt gemaakt, moet de afbeeldings-URL als argument worden opgegeven.
‫Dus we zeggen dat deze afbeeldings-URL de afbeelding wordt die u URL.
‫Dus aan de ene kant hebben we die geërfd van post.
‫Dus ik ga dat hier toevoegen en aan de andere kant hebben we degene die ons eigen lid is, dus property image
‫is lid van Image Post, maar niet van post.
‫En dat is iets dat belangrijk is.
‫Dus Post weet niets van deze afbeeldings-URL en het maakt niet uit, maar ons afbeeldingsbericht kent alle
‫eigenschappen van ons bericht.
‫Dat is dus erfenis.
‫Nu, een klein ding over deze afbeeldingspost hier, dus.
‫De constructors zijn vereist, die twee, omdat geen van beide constructors een basisklasse aanroept.
‫Dus we gebruiken deze base niet zonder de constructor van de base class aan te roepen en de
‫default constructor en de base class wordt impliciet aangeroepen omdat we het hier niet expliciet aanroepen.
‫Dus niet in deze en ook niet in deze, die uit de basisklasse, de constructor.
‫Dus deze standaardconstructor moet worden aangeroepen of er moet een basisconstructor in onze post zijn.
‫Daarom heb ik het gemaakt, omdat je je misschien hebt afgevraagd, waarom hebben we dat nodig?
‫Waarom is het daar?
‫Nou, het is vereist omdat we het niet expliciet noemen dat is ingeschakeld en het zal impliciet worden genoemd.
‫Rechts.
‫Geweldig.
‫Dus dat is dat.
‫Laten we doorgaan naar onze programmaklas en een van die berichten maken.
‫En ik ga nu een afbeeldingspost maken en het wordt een nieuwe afbeeldingspost en geef je de
‫naam.
‫Ik noem het Image Post één.
‫Het wordt een nieuwe fotopost.
‫En ik ga mijn nieuwe schoenen bekijken, want ik heb nieuwe schoenen gekocht en ze zijn geweldig.
‫En wie stuurt het?
‫Nou, dan is het doordringbaar super.
‫Het geroezemoes over zijn nieuwe schoenen.
‫En natuurlijk moet hij een link voor die afbeeldingen hebben terwijl hij de afbeelding net heeft geüpload.
‫Maar de afbeelding zelf heeft een link omdat het ergens in onze opslag is opgeslagen, dus of op onze servers.
‫Het wordt dus een veilige https.
‫En ik ga hier gewoon een link faken.
‫Ik noem het gewoon afbeeldingen, dot com slash-schoenen en nou ja, hij maakte het openbaar.
‫Dus het is waar.
‫En laten we het op de volgende regel zetten, zodat het gemakkelijker te lezen is.
‫Dus nu hebben we onze afbeeldingspost.
‫En wat we nu met de afbeeldingspost kunnen doen, is weer iets op de console schrijven om te kijken wat er aan de
‫hand is.
‫En ik ga afbeelding post gewoon een punt noemen, en dat is nog eens, iets dat best cool is.
‫Dus we noemen deze methode met twee snaren op onze afbeelding.
‫Plaats er een.
‫En zie je hier een stringmethode?
‫Ik niet.
‫En dat is cool, want we nemen die van onze post.
‫Dus we erven van post en nu nemen we zijn methode, die wordt aangeroepen naar string.
‫En als we dat uitvoeren.
‫Eigenlijk moeten we ermee stoppen.
‫Omdat we het niet zullen zien, wordt er gelezen en is het weg.
‫Dus we moeten deze rode lijn nemen en hier posten.
‫Dus laten we het opnieuw uitvoeren.
‫En er staat, kijk eens naar mijn nieuwe schoenen van Dennis Punnet.
‫Maar waar is de link die ik moet linken?
‫Kom op, geef me de link.
‫Nou, het is er niet omdat de twee-stringmethode van onze post niets weet over links.
‫Het heeft geen idee van links.
‫Het maakt niet uit welke links.
‫Het heeft er geen nodig.
‫Dus een kleine uitdaging voor jou.
‫En zo gaan we de video afmaken.
‫Maak voor nu een methode met twee tekenreeksen in onze afbeeldingspost die ons ook informeert over de link.
‫Oké, ik hoop dat je het geprobeerd hebt, dus ik ga het simpel houden.
‫Ik ga de twee strings van hier naar je afbeeldingspost kopiëren en ik ga het formaat een klein beetje
‫veranderen.
‫Ik ga hier een kleine verklaring toevoegen, dus ook de link en drie zullen nog steeds de gebruiker zijn,
‫dus we hebben de link hier nodig, zodat ze beginnen met het afbeelden van je URL Karma.
‫Dus de bestelling is Edem, geef uw URL een titel en vervolgens verzonden door de gebruiker.
‫Dus als je dat doet, overschrijven we de basisklasse, dus we negeren de twee strings van onze post die dat
‫object overbelasten van het systeem.
‫Dus je kunt zien dat je het kunt negeren en negeren, enzovoort, en we zullen zien waar de limiet is of hoe
‫we die kunnen beperken.
‫Dus laten we het nu uitvoeren.
‫En we kunnen zien, bekijk mijn nieuwe schoenen, hier is de link, Dennis, zodat ik op de link in het console-account
‫kan klikken.
‫Maar over het algemeen kon ik op de link klikken en kon ik de afbeelding of mijn tool zien.
‫Mijn app zou bijvoorbeeld die link kunnen lezen en de afbeelding kunnen tonen.
‫Oke.
‫Dus dat is een eerste blik op erfenis was een lange video.
‫Ik weet dat.
‫En erfenis is veel meer dan dat.
‫En we zullen kijken naar veel coolere dingen.
‫Maar allereerst gaan we in de volgende video een uitdaging aan.
‫En dus tot ziens in de volgende video.