‫Willkommen zurück und dieses Video, es dreht sich alles um Vererbung, und wir werden fortfahren und
‫eine Klasse erstellen, die ich einfach posten nenne, also eine neue Klasse und es wird ein Beitrag sein.
‫Stellen Sie sich vor, das wäre ein Social-Media-Beitrag, wie ein Twitter-Beitrag oder ein Facebook-Beitrag oder was auch
‫immer.
‫Und die Idee ist, dass ich von einem Beitrag erben möchte und so etwas wie einen Bildbeitrag oder später einen
‫Videobeitrag erstellen möchte.
‫Und solche Dinge werden es uns ermöglichen, das Konzept der Vererbung ein bisschen besser zu verstehen.
‫Und Sie können das in Zukunft auf verschiedene Objekte in verschiedenen Situationen anwenden.
‫Ein Beitrag hat also zunächst eine Variable, die ich in der aktuellen Beitrags-ID privat statisch machen werde.
‫Dieses wird also ein Feld dieses Beitrags sein und es ist statisch.
‫Es ist also auch außerhalb dieses Beitrags verfügbar und wird erstellt, sobald die Anwendung gestartet wird.
‫Rechts.
‫Was wir also tun können, ist zunächst einige Eigenschaften zu erstellen.
‫Und jetzt ist die Idee hinter Eigenschaften, wie Sie wissen, dass sie Ihnen mehr Informationen über das
‫Objekt geben.
‫Rechts.
‫Wenn ich also in unserem Fall ein Post-Objekt erstelle, gibt es bestimmte Informationen, die wir wirklich haben möchten.
‫Zum Beispiel wollen wir die ID genauso wissen wie ein edman, als Programmierer nicht so sehr als User und User interessiert
‫sich nicht für die Post-ID, sondern als Admin oder als Programm sollte man es sein, denn jeder Post sollte
‫es sein identifiziert werden und eine eindeutige ID haben sollte.
‫Wir werden also Ausweise haben, wir brauchen einen Titel.
‫So hat der Beitrag zum Beispiel einen Titel, vielleicht eine Beschreibung oder einen Text, so ähnlich.
‫Dann müssen wir wissen, wer diesen Beitrag gesendet hat und ob er öffentlich sein soll oder nicht.
‫Natürlich gibt es noch viel mehr über den Beitrag zu wissen, daher kann der Beitrag noch viel
‫mehr Eigenschaften enthalten, aber wir werden es vorerst einfach halten.
‫Also werde ich hier geschützte Eigenschaften erstellen.
‫Und wir haben noch keine geschützten Eigenschaften verwendet.
‫Aber am Ende bedeutet Protect, dass das nur von dieser Klasse verwendet werden kann, aber einer Post-Klasse und allen davon abgeleiteten
‫Klassen.
‫Also Klassen, die sich von der Post ableiten.
‫Also werde ich fortfahren und die erste erstellen, die die ID sein wird.
‫Also int i d und wir verwenden get und set.
‫Dann eine andere Eigenschaft, also werde ich hier eine Stütze verwenden und es sollte ein
‫String sein und ich nenne sie Titel und wie zuvor sollte sie geschützt werden, dann unsere Eigenschaft und ich werde string
‫verwenden erneut und dieser wird per Benutzername gesendet.
‫Also, wer hat es geschickt?
‫Und es wird auch geschützt.
‫Und schließlich ist eine aufgerufene Eigenschaft öffentlich.
‫Es ist also ein boolescher Wert, da er nur zwei Werte haben kann.
‫Es ist also entweder öffentlich oder nicht öffentlich.
‫Wir haben also einfach diese Eigenschaften.
‫Rechts.
‫Jetzt erstellen wir also einen Standardkonstruktor und es gibt einiges über den Standardkonstruktor zu wissen,
‫wenn er abgeleitet ist. Wenn eine Entwurfsklasse einen Basisklauselkonstruktor nicht explizit aufruft, wird der Standardkonstruktor
‫implizit aufgerufen.
‫Deshalb erstellen wir hier einen.
‫Also erstellen wir einen öffentlichen Beitrag.
‫Und jetzt wird dieser Beitrag gut, weil wir hier keine Parameter bekommen.
‫Es wird definiert oder wir setzen die Werte hier.
‫Es wird also null sein.
‫Dann ist der Titel zum Beispiel mein erster Beitrag oder vielleicht mit Leerzeichen.
‫Erster Post so, dann ist er öffentlich?
‫Nun, sagen wir wahr, weil wir es sehen und dann per Benutzername senden möchten.
‫Gut von mir gesendet.
‫Also der Beklagte in diesem Fall.
‫Wenn wir also jetzt einen Beitrag erstellen, wird es einfach dieser Beitrag hier sein.
‫Es wird also mein erster Beitrag.
‫Dann möchte ich eine andere Instanz haben, einen Konstruktor, der mehrere Parameter hat.
‫Also möchte ich Beiträge erstellen, in denen ich diese Dinge tatsächlich definieren kann.
‫Ich definiere die ID nicht, aber ich kann den Titel definieren.
‫Ich kann sagen, ob es öffentlich ist und ob es mit welchem Benutzernamen gesendet wird.
‫Das kannst du dir also vorstellen.
‫Nehmen wir an, Sie schreiben ein kleines Social-Media-Programm und möchten die Möglichkeit zum Posten haben, und dann müssen
‫Sie diese Informationen jedes Mal senden, wenn Sie einen Beitrag erstellen.
‫Der Benutzer erstellt also einen Beitrag und erhält eine automatisch definierte ID, dann wird er automatisch definiert, wobei er einen
‫definierten Titel erhält, basierend auf der Eingabe des Benutzers.
‫Es ist öffentlich, basierend auf dem, was der Benutzer angekreuzt hat, ob er sich entschieden hat, es öffentlich zu machen oder nicht, und
‫es wird von ihm gesendet.
‫Das sind also nur Daten, die bei der Erstellung jedes Beitrags übergeben werden.
‫Lassen Sie uns nun einen Instanzkonstruktor erstellen, der drei Parameter hat.
‫Also werde ich einen öffentlichen Beitrag erstellen und hier die Zeichenfolge title bool is public und die Zeichenfolge
‫send by username verwenden.
‫Und hier stelle ich die ID ein und dafür brauche ich etwas.
‫Also stelle ich es jetzt einfach auf null.
‫Aber ich benötige eine zusätzliche Methode, die immer eine neue ID für jeden Beitrag erstellt.
‫Wir werden gleich sehen, wie das funktioniert.
‫Dieser Titel wird also der gesendete Titel sein.
‫Mein Benutzername wird von Benutzername mit einem ungepflegten Buchstaben hier gesendet und das, was öffentlich ist,
‫ist öffentlich und nicht die Eigenschaft, sondern dieser Parameter.
‫Also habe ich jetzt gesagt, dass ich nicht möchte, dass es Null ist.
‫Die Idee sollte einzigartig sein.
‫Der beste Weg ist also, eine Methode zu erstellen, die geschützt werden soll und die get next heißt.
‫Was das tun wird, ist, dass es einfach die nächste ID zurückgibt, was die aktuelle Post-ID bedeutet, und hier
‫erhöhen wir davor.
‫Jedes Mal, wenn es aufgerufen wird, wird es sich selbst um eins erhöhen.
‫Also diese hier, diese aktuelle Post-ID wird um eins erhöht.
‫Anstatt hier Null zu setzen, rufen wir jetzt die nächste ID-Methode auf oder rufen die nächste ID-Methode ab.
‫Nun, was hättest du sonst gerne in einem solchen Programm, in dem du etwas posten kannst, während ich die
‫Möglichkeit schätze, einen Beitrag anzupassen?
‫Im Moment haben wir also einen Beitrag erstellt und wären ziemlich unglücklich, wenn wir diesen Beitrag nicht ändern können.
‫Und nun, das ist etwas, das tatsächlich passiert.
‫Und ich denke, was Snapchat, dass Sie ein Bild erstellen und dann ist es da, Sie können dieses Bild bearbeiten.
‫Ich bin mir nicht sicher, ob Sie den Text bearbeiten können, aber hier möchten wir in der Lage sein, den
‫Text zu bearbeiten, also erstellen wir eine neue Methode, öffentliches Void-Update, und das sollte den Titel aufnehmen.
‫Und die Schüssel ist öffentlich, denn wenn Sie darüber nachdenken, was sollte der Benutzer aktualisieren können?
‫Er sollte weder auf die ID zugreifen können, noch sollte er in der Lage sein, den Benutzernamen zu aktualisieren, da er von ihm gesendet
‫wird.
‫Er hat also einen Benutzernamen und dieser sollte keinen Einfluss auf die Aktualisierung eines Beitrags haben.
‫Hier werden wir also nur den Beitrag aktualisieren und das bedeutet, dass wir nur den Titel und den booleschen Wert
‫ändern, dh ob er öffentlich ist oder nicht.
‫Und hier sagen wir einfach, dass dieser Titel Titel sein wird, und das, was öffentlich ist, wird so öffentlich
‫sein, wie wir es hier haben.
‫Ein Post-Post ist eine Blaupause, während diese Klasse eine Blaupause einer beliebigen Post-Instanz ist.
‫Wenn wir also etwas posten, das dieses Selbst ist, ist diese Instanz der Post, und wenn wir seinen Titel ändern, ändern
‫wir den Titel dieses bestimmten Posts.
‫Und wenn wir uns ändern, egal ob öffentlich oder nicht, ändern wir die Veröffentlichung dieses bestimmten Beitrags.
‫OK, damit können wir den Titel und die Veröffentlichung eines bestehenden Beitrags aktualisieren.
‫Das nächste, das ich erstellen möchte, ist nun eine virtuelle Methodenüberschreibung von zwei Zeichenfolgen, die vom System
‫dieses Objekts geerbt werden.
‫Also system, dieses Objekt ist eine Klasse, die hier in system vorkommt.
‫Das können wir also gebrauchen.
‫Es ist innerhalb von Cis und wir können das einfach verwenden.
‫Und es gibt eine Methode, die als Zeichenfolge aufgerufen wird, oder von dort aus können wir die Methode mit zwei Zeichenfolgen aufrufen.
‫Also system, das Objekt hat eine Zwei-String-Methode, und wir wollen das
‫überschreiben, weil jede einzelne Klasse, also auch unsere Klasse, von dieser Objektklasse erbt.
‫Also System, dieses Objekt ist eine Klasse, von der wir erben können.
‫Hier drin können wir zum Beispiel dieses Objekt davon erben, oder wir erben tatsächlich jede Klasse davon.
‫Was wir jetzt tun können, ist, eine seiner Methoden zu überschreiben.
‫Also public override string und two string, wie Sie sehen können, wird dies bereits vorgeschlagen.
‫Es sagt also, dass der String, der das aktuelle Objekt darstellt, etwas innerhalb der Objektklasse
‫zurückgibt.
‫Und wie Sie sehen können, gibt es etwas namens Return Bayes zum String.
‫Die Basisklasse hat also eine Methode mit zwei Zeichenfolgen.
‫Und wenn wir das einfach tun, dann wird es so ziemlich nichts bedeuten, weil
‫wir sowieso einfach die Zwei-String-Methode der Basisklasse verwenden.
‫Aber wir können sie ändern, damit wir sie anpassen können, anstatt alles zurückzugeben, was die Basisklasse zurückgeben würde.
‫Wir wollen unser eigenes Ding machen.
‫Wir werden also einen String dieses Formats verwenden, um einen String zu formatieren, der bestimmte Informationen
‫enthält.
‫Es wird also die Idee sein, es wird der Titel sein und wer ihn schickt.
‫Also werde ich diese Art von Informationen einfach so verwenden.
‫Es wird also diese ID sein.
‫Also die Idee, dann dieser Titel und schließlich dieser, der per Benutzername gesendet wird.
‫Das wird also zurückkehren.
‫Wenn wir also string verwenden, werden nicht nur einige Informationen über das Objekt
‫zurückgegeben, sondern im Standardformat oder in unserem von uns erstellten Format.
‫Das ist also unser Format, richtig.
‫So.
‫Lassen Sie uns ein Objekt dieser Klasse erstellen. Gehen wir also zu unserem Programm über und erstellen wir dann hier einen
‫Beitrag.
‫Post Post eins ist also ein neuer Post, und hier kann ich einige Informationen eingeben, wo ich sie hinterlassen kann.
‫Wenn ich es lasse, ist das der Standardkonstruktor, der aufgerufen wird.
‫Also der hier.
‫Und wenn nicht, wird ein anderer aufgerufen.
‫Nehmen wir an, ich habe etwas gepostet.
‫Danke für die Geburtstagswünsche.
‫Also wünschten mir alle alles Gute zum Geburtstag.
‫Ich möchte mich also nur ganz herzlich bei Ihnen bedanken und möchte es durchziehen, weil ich möchte, dass meine Freunde es sehen,
‫damit es öffentlich wird.
‫Und dann ist Dennis Pan, Utah derjenige, der es schickt.
‫Natürlich könnten wir eine Benutzerklasse haben, die das gesamte Handling übernimmt, und wir könnten einfach überprüfen, welche Benutzer sich angemeldet haben
‫oder was auch immer.
‫Aber im Moment verwenden wir hier nur einen hartcodierten String.
‫Also wird es Dennis Bunnytown sein.
‫Das ist also ein neuer Beitrag, den wir hier haben.
‫Und jetzt können wir fortfahren und das auf die Konsole schreiben.
‫Also s. W. und ich werde Post Punkt zu String sagen und hier natürlich den Post.
‫Also unsere Post-Instanz.
‫Dies ist also unsere Post-Instanz.
‫Und ich habe die Post angerufen und sie wird etwas auf einer Konsole schreiben.
‫Und da wir sehen wollen, was es ist, müssen wir uns hier neu ausrichten.
‫Wir wollen also nur die Konsole offen halten, damit wir sehen, was da passiert und wir uns, wie ihr
‫seht, eins zum Geburtstags-Geburtstag, der von Dennis Pennetta ist, eins werden.
‫Und das ist die Idee dieses Beitrags.
‫Das heißt also, dass unser Beitrag hier.
‫Dieser bekommt eine neue ID und die neue ID wird null plus plus eins oder plus eins sein, was bedeutet, dass es nur
‫eins ist.
‫Deshalb bekommen wir diesen hier.
‫Die Idee ist also eine, dann heißt das, Informationen zu posten.
‫Und der hat es bis dahin geschickt, Pontotoc.
‫Jetzt haben wir also einen Beitrag und lassen Sie uns nun fortfahren und Vererbung verwenden, denn bis jetzt, abgesehen
‫von diesen beiden Strings hier, gibt es tatsächlich keine Vererbung.
‫Also eigentlich nur für dich.
‫Sie wissen also, was ich zuvor gesagt habe, die Überschreibung der virtuellen Methode der Zwei-String-Methode, die vom System dieses
‫Objekts geerbt wird.
‫Lassen Sie uns nun eine neue Klasse erstellen.
‫Und das werden Bild-Posts sein, denn bisher können wir zwar nur bestimmten einfachen Text posten, aber in
‫Zukunft wollen wir auch Bilder posten.
‫Und jetzt sollte dieser Image-Post eine treibende Klasse unseres Basisklassen-Posts sein, da diese Klasse hier eine sehr einfache Klasse ist
‫und wir fortfahren und davon erben möchten.
‫Um also von einer anderen Klasse zu erben, verwenden Sie Kolon und geben dann den Namen der Klasse ein, von der
‫Sie erben möchten.
‫Also möchte ich von Post erben.
‫Und was mir das ermöglicht, ist, alle seine Funktionen zu nutzen.
‫Das ist ziemlich cool, weil es jetzt seine Eigenschaften nutzen kann.
‫Ich kann seine Variablen außer seinem Konstruktor hier verwenden.
‫Und ja.
‫Machen wir also weiter und erweitern wir den Bildbeitrag.
‫Wie Sie wissen, leitet es sich von post ab und sollte jetzt eine weitere Eigenschaft namens Image URL und zwei Konstruktoren
‫haben.
‫Das ist es, was ich hinzufügen möchte.
‫Zuerst brauche ich hier eine Eigenschaft und es wird eine Zeichenfolge namens image sein.
‫Sie sind das Bild, das Sie für den Bildpost verwenden.
‫Nehmen wir also an, wir posten etwas und es ist ein Bild drin, dann ist es automatisch oder
‫sollte ein Bildpost sein und es muss eine Bild-URL haben.
‫Also ein Ort, an dem dieses Bild gespeichert ist, der sich auf unseren Servern oder einfach im Internet befinden kann.
‫Was auch immer da ist, wir haben dieses, um diese Bild-URL für einen Bildpost zu haben.
‫Lassen Sie uns nun einfach so einen sehr einfachen öffentlichen Konstruktor-Image-Beitrag
‫erstellen.
‫Nichts anderes.
‫Wie Sie sehen, ist nichts drin.
‫Ich will hier nichts machen.
‫Und dann habe ich hier einen weiteren Beitrag oder einen Image-Post-Konstruktor erstellt, aber dieses Mal möchte ich hier einige Parameter.
‫Es wird also eine Zeichenfolge mit Titelzeichenfolge sein. Senden Sie per Benutzernamen Zeichenfolgebild Ihre URL und tatsächlich sind Sie L und
‫Boulle ist öffentlich, also möchte ich all das haben.
‫Und jetzt möchte ich im Image-Post die Idee noch einmal setzen.
‫Diese Gedanken-ID ist gleichbedeutend mit der nächsten ID und das ist schon ziemlich cool.
‫Woher zum Teufel kommt diese Idee und woher kommt diese nächste Idee?
‫Nun, es kommt von der Post.
‫Also nehmen wir diese Methode hier, diese geschützte Methode.
‫Wir können es einfach hier anrufen.
‫Wir können es verwenden, als ob es unseres wäre.
‫Wir müssen also nicht einmal so etwas wie post dot get next ID sagen.
‫Wir sagen einfach: Holen Sie sich die nächste Idee.
‫Das gleiche gilt für diese ID.
‫Jeder Bildbeitrag hat also eine ID, die gleiche wie der Beitrag selbst.
‫Und das gilt jetzt auch für den Titel.
‫Titel wird also Titel sein.
‫Dann beginnen sie mit dem Senden nach Benutzernamen werden nach Benutzernamen gesendet.
‫Und schließlich ist dies öffentlich wird jetzt öffentlich sein.
‫Das ist ziemlich toll.
‫Wir können diese Dinge gebrauchen.
‫Das ist großartig.
‫Und jetzt haben wir auch unsere eigene Eigenschaft, die unsere Bild-URL ist, und die haben wir hier.
‫Wenn also ein Bildbeitrag erstellt wird, muss die Bild-URL als Argument übergeben werden.
‫Wir sagen also, dass diese Bild-URL die Bild-URL sein wird.
‫Auf der einen Seite haben wir also die von der Post geerbte.
‫Ich füge das hier hinzu und andererseits haben wir dasjenige, das unser eigenes Mitglied ist, also ist Property Image
‫Mitglied von Image Post, aber nicht von post.
‫Und das ist etwas Wichtiges.
‫Post kennt diese Bild-URL also nicht und es spielt keine Rolle, aber unser Bildpost kennt alle
‫Eigenschaften unseres Posts.
‫Das ist also Vererbung.
‫Nun, eine Kleinigkeit zu diesem Bildpost hier, also.
‫Die Konstruktoren sind erforderlich, diese beiden, da keiner der Konstruktoren eine Basisklasse aufruft.
‫Wir verwenden diese Basis also nicht, ohne den Konstruktor der Basisklasse und den Standardkonstruktor aufzurufen,
‫und die Basisklasse wird implizit aufgerufen, da wir sie hier nicht explizit aufrufen.
‫Also weder in diesem und nicht noch in diesem, dem aus der Basisklasse, dem Konstruktor.
‫Also muss dieser Standardkonstruktor aufgerufen werden oder es muss ein Basiskonstruktor in unserem Beitrag vorhanden sein.
‫Deshalb habe ich es geschaffen, weil Sie sich vielleicht gefragt haben, warum wir das brauchen?
‫Warum ist es da?
‫Nun, es ist erforderlich, weil wir es nicht explizit als eingeschaltet bezeichnen und es implizit aufgerufen wird.
‫Rechts.
‫Groß.
‫Das ist es also.
‫Kommen wir zu unserer Programmklasse und erstellen einen dieser Beiträge.
‫Und ich werde jetzt einen Image-Post erstellen und es wird ein neuer Image-Post sein und Ihnen tatsächlich den Namen
‫geben.
‫Ich werde es Image Post eins nennen.
‫Es wird ein neuer Image-Post.
‫Und ich werde mir meine neuen Schuhe ansehen, weil ich ein paar neue Schuhe gekauft habe und sie verdammt gut sind.
‫Und wer schickt es?
‫Na, dann ist es super durchdringbar.
‫Die Begeisterung für seine neuen Schuhe.
‫Und natürlich muss er einen Link für diese Bilder haben, während er das Bild gerade hochgeladen hat.
‫Aber das Bild selbst hat einen Link, weil es irgendwo in unserem Speicher, also oder auf unseren Servern, gespeichert ist.
‫Es wird also ein sicheres https sein.
‫Und ich werde hier nur einen Link fälschen.
‫Ich nenne es einfach Bilder, Dot-Com-Slash-Schuhe und nun, er hat es öffentlich gemacht.
‫Es ist also wahr.
‫Und lass es uns in die nächste Zeile schreiben, damit es leichter zu lesen ist.
‫So, jetzt haben wir unseren Image-Post.
‫Und was wir jetzt mit dem Image-Post machen können, ist, wieder etwas auf die Konsole zu schreiben, um zu sehen, was
‫los ist.
‫Und ich nenne den Bildpost einfach einen Punkt zum String, und das ist wieder etwas, das ziemlich cool ist.
‫Also rufen wir diese Methode mit zwei Zeichenfolgen in unserem Bild auf.
‫Poste eins.
‫Und sehen Sie hier eine String-Methode?
‫Ich nicht.
‫Und das ist cool, weil wir das aus unserem Beitrag nehmen.
‫Wir erben also von post und nehmen nun seine Methode, die als string aufgerufen wird.
‫Und wenn wir das ausführen.
‫Eigentlich müssen wir damit aufhören.
‫Weil wir es nicht sehen werden, wird es gelesen und es ist weg.
‫Also müssen wir diese rote Linie nehmen und sie hier posten.
‫Also lassen Sie es uns noch einmal ausführen.
‫Und da steht, schau dir meine neuen Schuhe von Dennis Punnet an.
‫Aber wo ist der Link, den ich verlinken muss?
‫Komm, gib mir den Link.
‫Nun, es ist nicht da, weil die Zwei-String-Methode unseres Beitrags keine Links kennt.
‫Es hat keine Ahnung von Links.
‫Es ist egal, welche Links.
‫Es braucht keine.
‫Also eine kleine Herausforderung für dich.
‫Und so werden wir das Video beenden.
‫Erstellen Sie vorerst eine Zwei-String-Methode in unserem Bildbeitrag, die uns auch über den Link informiert.
‫In Ordnung, ich hoffe, Sie haben es versucht, also werde ich es einfach halten.
‫Ich werde die beiden Strings von hier in Ihren Image-Post kopieren und das Format ein wenig
‫ändern.
‫Wir werden hier eine kleine Aussage hinzufügen, auch der Link und drei immer noch der
‫Benutzer, also brauchen wir den Link hier, damit sie Ihr URL-Karma abbilden.
‫Also ist die Bestellung Edem, betitele deine URL und wird dann vom Benutzer gesendet.
‫Wenn Sie dies tun, überschreiben wir die Basisklasse, also überschreiben wir die beiden Strings aus unserem Beitrag, die dieses Objekt
‫aus dem System überladen haben.
‫Sie können also sehen, dass Sie es überschreiben und überschreiben können und so weiter, und wir werden sehen, wo die Grenze liegt oder wie
‫wir sie einschränken können.
‫Also lassen Sie es uns jetzt ausführen.
‫Und wir können mir meine neuen Schuhe ansehen, hier ist der Link, Dennis, damit ich auf den Link im Konsolenkonto
‫klicken kann.
‫Aber im Allgemeinen konnte ich auf den Link klicken und das Bild oder mein Werkzeug sehen.
‫Meine App könnte zum Beispiel diesen Link lesen und das Bild anzeigen.
‫Gut.
‫Das ist also ein erster Einblick in die Vererbung war ein langes Video.
‫Ich weiß das.
‫Und Vererbung ist noch viel mehr.
‫Und wir werden uns mit viel cooleren Dingen befassen.
‫Aber zuerst gehen wir im nächsten Video zu einer Challenge.
‫Und so sehen Sie sich im nächsten Video.