‫In diesem Video lernst du etwas über die Vererbung in C Sharp oder im Programmieren im Allgemeinen, ich werde
‫versuchen, es super einfach zu halten, weil es ziemlich kompliziert werden kann, wenn man es sich ansieht, weil
‫es viel passiert.
‫Aber ich werde es so weit wie möglich vereinfachen, OK, denn die Idee der Vererbung ist in Wirklichkeit
‫die Wiederverwendbarkeit von Code.
‫Und das erlaubt uns nicht nur unseren eigenen Code zu reduzieren, sondern Code anderer Entwickler
‫oder gar anderer Namensräume direkt zu reduzieren, ohne immer wieder viel Code manuell schreiben zu müssen, der
‫vorher da war.
‫Und das reduziert wirklich wiederholten oder redundanten Code.
‫OK, die Idee der Vererbung ist im Grunde ein grundlegendes Konzept der objektorientierten Programmierung.
‫Es ermöglicht Ihnen, eine untergeordnete Klasse zu definieren, die das Verhalten einer übergeordneten Klasse wiederverwendet oder erbt, erweitert oder
‫modifiziert.
‫Die Klasse, deren Member geerbt werden, wird als Basisklasse bezeichnet.
‫Die Klasse, die die Member der Basisklasse erbt, wird als abgeleitete Klasse bezeichnet.
‫Okay, was bedeutet das?
‫Nun, in einfachen Worten, wenn Sie mehr als eine Klasse mit demselben Code oder derselben
‫Funktionalität haben, die sich jedoch geringfügig unterscheidet, können wir diesen wiederholten oder redundanten Code tatsächlich in eine separate
‫Klasse einfügen und dann unsere Klasse so erben lassen.
‫Dieser Code kann sozusagen die Funktionalität einer Methode sein oder Eigenschaften, die die Attribute unserer Klassen
‫sind.
‫Schauen wir uns also ein Beispiel an und deshalb erstelle ich hier ein neues Projekt, das ich Inheritance Demel
‫nenne.
‫Gut.
‫Schauen wir uns also dieses Beispiel an.
‫Wenn Sie also mit mehreren Klassen arbeiten, erstellen Sie normalerweise hier eine neue Klasse.
‫Okay, das machen wir auch hier.
‫Sie könnten die Klasse natürlich in derselben Datei erstellen, aber das ist keine gute Methode.
‫Also lass uns weitermachen und diese Klasse Radio anrufen.
‫Gut.
‫Hier ist also die Klasse-Sag-Radio-Werbung.
‫Und jetzt haben wir diese Radioklasse, die den gleichen Namen trägt.
‫OK, also beide Klassen, das Programm fragt, wo wir unsere Hauptmethode haben, die der Ausgangspunkt
‫unserer Anwendung ist, und die Funkklasse haben die gleiche Form.
‫Also werden wir zwei Klassen haben.
‫Das eine wird Radio und das andere Fernsehen sein.
‫Nehmen wir einfach an, wir haben ein paar Eigenschaften.
‫Also zum Beispiel ein Boolean, der den Status des Radios bestimmt, wenn es eingeschaltet ist und dann die Marke
‫des Radios, also ein Panasonic oder was auch immer es andere Marken gibt.
‫Und dann haben wir hier einen einfachen Konstruktor.
‫Sie sollten also auf jeden Fall ein Verständnis für die Kernkonzepte von Klassen haben.
‫Wenn Sie die Vererbung vollständig verstehen möchten, würde ich im Allgemeinen empfehlen, dies zu verstehen, bevor
‫Sie mit der Vererbung beginnen, da sie aufeinander aufbauen.
‫OK, dann möchte ich zwei Methoden haben, weil dies im Grunde die Funktionalität sein wird.
‫Das eine wird also das Radio einschalten, es wird die Einschaltmethode sein und die andere wird die
‫Ausschaltmethode sein.
‫So können Sie das Radio mit diesen beiden Methoden ein- und ausschalten oder einschalten.
‫Und dann haben wir eine andere Methode, mit der wir Radio hören können.
‫OK, wir haben hier diese Methode namens Radio hören und sie wird überprüfen.
‫Ist das Radio gerade eingeschaltet?
‫Ist das hier also Eigentum, dieser Boolean, wird es tatsächlich wahr sein?
‫Und wenn das wahr ist, dann können wir Radio hören und die Art und Weise, wie wir
‫angeben, dass wir Radio hören, wird nur mit dieser roten Konsolen-Zeile-Anweisung sein, die besagt, dass wir Radio
‫hören, andernfalls werden wir drucken diese Fehlermeldung besagt, dass das Radio ausgeschaltet ist.
‫Schalten Sie es zuerst ein.
‫OK, also bevor wir es anhören können, müssen wir es einschalten.
‫Gut.
‫Das ist jetzt unser Radio.
‫Stellen Sie sich nun vor, Sie haben eine andere Klasse, die sein wird.
‫Der Fernseher.
‫OK, also lassen Sie uns eine neue Klasse erstellen, und deshalb können Sie hierher gehen, um eine Klasse hinzuzufügen und dann hinzuzufügen
‫und dieser Klasse einen Namen zu geben.
‫Ich nenne es Fernsehen.
‫Und jetzt werde ich in dieser Klasse ein paar Eigenschaften haben, die denen ähnlich sind, die wir hier hatten.
‫Im Grunde habe ich also auch die Zustände, wenn es ein- oder ausgeschaltet ist.
‫Lassen Sie uns diese beiden Eigenschaften hier hinzufügen.
‫Dann habe ich einen einfachen Konstruktor, mit dem ich diese Werte einstellen kann, wenn ich ein neues
‫TV-Objekt erstelle.
‫Hier ist es also sowohl on als auch String Brand, der die Eigenschaften festlegt.
‫Dann muss ich einzelne andere Methoden anwenden, damit ich den Fernseher ein- und ausschalten kann, ähnlich wie ich es im Radio getan habe,
‫damit ich diesen Code im Grunde kopieren kann.
‫Aber es wird etwas anders sein, weil wir die Kommentare hatten, die hier Radio sagten, aber jetzt wird das
‫Fernsehen sein.
‫Diese Methode schaltet also den Fernseher ein und diese schaltet ihn aus oder aus.
‫OK, dann brauchen wir nur noch eine andere Methode, die es uns ermöglicht, fernzusehen, und es wird etwas sehr ähnliches
‫tun wie unser Radio.
‫Dadurch können wir nur fernsehen, wenn der Fernseher eingeschaltet ist.
‫Wenn es ausgeschaltet ist, müssen wir zuerst den Fernseher einschalten.
‫OK, jetzt haben wir also diese beiden Klassen und wenn man sie sich ansieht, sind sie sich schrecklich ähnlich.
‫Es gibt also viele Dinge, die genau gleich sind, im Grunde, weil diese Eigenschaft genauso gut ist wie
‫diese Marke.
‫Sie sind gleich.
‫Wir haben sie in beiden Klassen.
‫Im Grunde haben wir also redundanten Code.
‫Wir müssen eine Menge Code kopieren und einfügen und es ist mehr oder weniger dasselbe.
‫Wie können wir es also schaffen, dass wir nicht viel Code kopieren und einfügen und Code neu schreiben müssen und im Grunde über redundanten
‫Code verfügen?
‫Nun, das ist der springende Punkt des Konzepts der Vererbung.
‫Also kommt das Erbe zur Rettung.
‫Wir können dieses Problem lösen, indem wir eine dritte Klasse namens Elektrogerät entwickeln.
‫Diese enthält alle gemeinsamen Funktionalitäten und Eigenschaften eines elektrischen Geräts, das wir haben.
‫Schauen wir uns diese also an.
‫Was sind die gleichen, die wir haben?
‫Was sind also die gleichen Eigenschaften für unseren Fernseher wie für das Radio?
‫Nun, in unserem Fall sind es eigentlich alle Eigenschaften, aber in diesem Fall müssen es nicht alle
‫sein.
‫Es wird daran liegen, dass wir nicht mehr Eigenschaften haben.
‫Aber die beiden Eigenschaften, die wir dort haben, werden dieselben sein.
‫So is on und Brent sind beides Eigenschaften, die es sowohl im Fernsehen als auch im Radio gibt.
‫Unsere neue Klasse sollte also diese beiden Eigenschaften haben.
‫Und dann haben wir die beiden Methoden, mit denen wir den Fernseher ein- und das Radio ein- oder auch das Radio aus- und
‫den Fernseher ausschalten können.
‫OK, also für Sie eine kleine Übung, wenn Sie dies versuchen möchten, denn ich gehe davon aus, dass Sie zu diesem Zeitpunkt keine Rolle
‫und Programmierung sind, aber Sie werden sich viel sicherer fühlen, wenn Sie dies versuchen.
‫Also fahren Sie fort und erstellen Sie eine Klasse, die all diese Eigenschaften und diese Methoden hat, die wir alle von den beiden Klassen
‫gemeinsam nutzen können, erstellen Sie sie in einer separaten Klasse und nennen Sie diese Klasse elektrisches
‫Gerät.
‫Eigentlich können Sie es nennen, wie Sie wollen, aber ich nenne es so ein elektrisches Gerät.
‫OK, also ich hoffe, du postest das Video und probierst es aus, also erstelle ich eine neue Klasse und nebenbei
‫siehst du natürlich, dass du die Tastenkombination Casey verwenden kannst.
‫Lassen Sie uns das in diesem Fall tun, Kontrolle, sehen Sie?
‫Und das öffnet dieses Fenster hier und lässt mich es auf elektrisch ändern.
‫Gerät so, und jetzt wird dieses Glas die Eigenschaften haben, die wir zwischen den beiden anderen Klassen teilen, also setzen wir sie
‫hier ein, den Booleschen Wert, der den Zustand des elektrischen Geräts bestimmt, ist es
‫eingeschaltet oder nicht?
‫Und dann die Marke des Geräts.
‫Und dann brauchen wir natürlich einen Konstruktor.
‫Das elektrische Gerät ist also eingeschaltet.
‫Und Brent und schließlich haben wir die Funktionalität, die Methoden sind.
‫Wenn Sie also Funktionen haben, fügen Sie sie in Methoden ein und die Funktion besteht darin,
‫etwas ein- oder auszuschalten.
‫Wenn also eine Aktion mit Ihrer Klasse oder dem von Ihnen verwendeten Objekt stattfindet, müssen
‫Sie Methoden verwenden.
‫Auch das tun wir hier.
‫Wir verwenden also eine Methode, um etwas ein- und auszuschalten, in diesem Fall das elektrische Gerät, oder
‫es ein- und auszuschalten.
‫Okay, das ist im Grunde das, was wir hier tun.
‫Nun, da wir unsere Share-Eigenschaften und -Methoden in einer Klasse haben, machen wir die
‫andere Klasse der TV- und Radio-Klassen, die von dieser Klasse geerbt wurden, oder mit anderen Worten, diese Klasse erweitern.
‫OK, das ist also nur ein anderer Begriff, den Sie hier verwenden können.
‫Unser Fernseher und unser Radio werden also nun die Klasse der Elektrogeräte erweitern.
‫Wie können wir das tun?
‫Nun, fangen wir mit dem Radio an, denn das Fernsehen wird dann für dich eine kleine Herausforderung,
‫bei der du es selbst machen musst.
‫Hier haben Sie also einen Doppelpunkt verwendet und dann ist der Name der Klasse, die Sie von einem elektrischen
‫Gerät erben möchten, die Klasse, die ich jetzt Funk erben werde, von der unser Funkgerät die Funktionalität
‫der Klasse Elektrogerät erweitert.
‫OK, also Doppelpunkt und dann der Name der Klasse, die Sie erweitern möchten und
‫was wichtig ist, das ist natürlich, dass diese Klasse entweder im gleichen Namensraum liegen muss oder Sie den Namensraum hier hinzufügen
‫müssen.
‫In unserem Fall verwenden wir keine davon.
‫Wir verwenden nur System.
‫Aber da wir uns im selben Namensraum befinden, also die Klasse der elektrischen Geräte im selben Namensraum wie Radio und
‫Fernsehen, können wir es einfach so machen.
‫Aber jetzt sehen wir, dass unser Bolianer hier eine Warnung hat.
‫Wenn Sie also über Ihrem I. D. , also wird Visual Studio Ihnen mitteilen, dass Radio Dot in der Höhe ist.
‫Geerbte elektrische Geräte des Mitglieds werden verwendet.
‫Das neue Schlüsselwort, wenn das Ausblenden beabsichtigt war.
‫Im Grunde verwenden wir also den gleichen Eigenschaftsnamen und das möchten Sie hier vermeiden, da Sie diese Eigenschaft sozusagen
‫bereits haben, weil Sie sie vom elektrischen Gerät erben.
‫Jetzt können Sie es einfach ausblenden oder mit diesem hier erstellten überschreiben.
‫Wenn Sie etwas mit genau demselben Namen verwenden möchten, sich aber irgendwie anders verhalten soll, können Sie dies
‫tun, auch wenn dies natürlich eine gute Praxis ist, hängt natürlich vom Anwendungsfall ab.
‫Das liegt also daran, dass die Funkklasse jetzt zwei Eigenschaften mit demselben Namen enthält, die wir verstecken oder abdecken.
‫Das ist hier ein anderer Begriff, die Eigenschaften, die wir von der elektrischen Geräteklasse geerbt haben.
‫Also entfernen wir den redundanten Code, den wir nicht mehr benötigen.
‫Also lass uns das loswerden.
‫Und natürlich weist der redundante Code nicht nur die Eigenschaften zu oder erstellt sie, sondern verfügt auch
‫über diese Methoden.
‫Also lasst uns auch diese los.
‫Nun, wir haben einen weiteren Fehler, der hier angezeigt wird, und das ist dieser Radiokonstruktor, der ein Problem zu haben
‫scheint.
‫Es besagt, dass kein Argument angegeben ist, das dem erforderlichen formalen Parameter entspricht, ist ein elektrisches Gerät,
‫die Bogensehne des elektrischen Geräts.
‫Was also ist dieses elektrische Gerät, diese elektrische Bogensehne?
‫Nun, es ist dieser hier.
‫Es ist dieser Konstruktor.
‫Da alle Eigenschaften von der Basisklasse kommen und unsere Basisklasse einen Konstruktor enthält, können wir das base-Schlüsselwort
‫verwenden, um unsere Basisklasse und ihre Konstruktorargumente zu übergeben, da dies die einzigen beiden Eigenschaften sind, die wir haben
‫und unser Konstruktor in der Kindklasse dies tun wird einen leeren Körper haben.
‫Okay, das wird viel geredet.
‫Aber im Grunde bedeutet dies, dass unser Radiokonstruktor nicht komplexer ist als der
‫Basismodell, wir können einfach weitermachen und sagen Basis.
‫Und hier ist auf und Brent.
‫So und so brauchen wir keinen Körper für unser Radio, also wird dieser Konstrukteur im Grunde sagen, dass
‫das eingeschaltet ist, sowie die Markeneigenschaften, die an das Radioobjekt übergeben werden, dass wenn es
‫erstellt wird, an das elektrische Gerät übergeben Konstrukteur, denn im Grunde erbt unser Radio von einem elektrischen Gerät und
‫daher können wir das tun.
‫Wir können es also einfach an das elektrische Gerät übergeben.
‫Und was das tun wird, ist, dass die Eigenschaften im Wesentlichen aktiviert sind und basierend auf den übergebenen Werten
‫gedruckt wird.
‫Okay, das ist es.
‫Der kompliziertere Teil, aber die Stärke hier ist wirklich, dass wir keinen redundanten Code erstellen müssen
‫und, nun ja, die Arbeit wird für uns erledigt, so dass wir wirklich viel Zeit und auch das Schreiben von Code sparen.
‫In einem späteren Beispiel werden wir sehen, wie der Rumpf des Konstruktors in der Kindklasse verwendet wird,
‫um seine eigenen einzigartigen Eigenschaften zu initialisieren, um hier nur schnell die Funkklasse wieder hervorzuheben.
‫Ist unsere Kinderklasse.
‫OK, also die erbende Klasse und das elektrische Gerät ist unsere Elternklasse, also die Basisklasse.
‫Wir werden also erben, also erbt unser Radio von einem elektrischen Gerät, also erbt das Kind von den Eltern, im Grunde haben
‫Ihre Eltern eine bestimmte DNA und Sie haben dieselbe DNA, aber Sie werden sozusagen ein
‫bisschen mehr haben.
‫So könnte man es sich vorstellen.
‫Gut.
‫Nun also eine kleine Herausforderung für dich.
‫Passen Sie die TV-Klasse so an, dass sie auch von einem elektrischen Gerät erbt.
‫Also positiv.
‫Und versuch das bitte.
‫Gut.
‫Ich hoffe du hast es versucht.
‫Zuerst müssen wir also ein elektrisches Gerät von Polan hinzufügen, dann können wir den redundanten Code entfernen.
‫Also der sich wiederholende Code, weil wir ihn bereits in unserer Basisklasse haben.
‫Und damit können wir es auch direkt in unserer TV-Klasse einsetzen.
‫Und jetzt können wir dies auch hier anpassen, indem wir sagen, dass wir die Daten an unsere Basisklasse übergeben werden.
‫Und das müssen wir natürlich auch hier nicht einstellen.
‫Aber wie ich im späteren Beispiel sagte, werden wir sehen, wie wir den Körper noch effizient nutzen können.
‫Und das wird es im Grunde sein.
‫Jetzt können wir einfach zu unserem Programm, der CSS-Datei, übergehen und unseren Code hier tatsächlich überprüfen.
‫Und mit dem Überprüfen unseres Codes meine ich, Objekte unseres Radios zu erstellen und zu testen.
‫Also lass uns weitermachen.
‫Ein Funkobjekt.
‫Ich werde das über mein Funkgerät anrufen und das wird ein neues Funkobjekt sein.
‫Natürlich muss ich weitergeben, ob es an ist.
‫Also werde ich am Anfang ausgeschaltet und ich werde sagen, dass es von Sony gemacht wird.
‫Die Marke wird also Sony sein.
‫Jetzt kann ich auf die Eigenschaften zugreifen.
‫Sie können hier nur Eitam sehen, die Eigenschaften meines eigenen Radios, das ist die Marke und das
‫ist Eigentum und ich kann auch auf seine Methoden zugreifen.
‫Also einschalten, ausschalten.
‫Hör zu, Radio.
‫Und dann sieht man auch, dass es einige Methoden gibt, die wir nie selbst erstellt
‫haben und die einfach von Anfang an da sind, weil jede Klasse von der Objektklasse erbt und die
‫Objektklasse eine Zwei-String-Methode sowie einen Get-Code vom Typ Get hat und gleich Methode.
‫OK, diese Methoden sind für jede einzelne Klasse da, die Sie in C Sharp
‫erstellen, weil wir sie im Grunde nicht sehen, aber intern erbt sie so von der Objektklasse, also erbt jede Klasse von
‫der Objektklasse und Deshalb haben wir diese verschiedenen Methoden.
‫Aber jetzt schalten wir es erst einmal ein.
‫Also hier, schalten Sie ein.
‫Dadurch wird unser Radio eingeschaltet und wir können jetzt unser Radio hören, also höre mein Radio, höre Radio.
‫Lassen Sie uns das jetzt ausführen, und dies wird es uns ermöglichen, unser Radio zu hören.
‫Da hören wir also Radio, also schalten wir das Radio ein, schalten wir jetzt nicht das Radio ein
‫und hören Radio und es wird Radio ausgeschaltet angezeigt.
‫Schalten Sie es zuerst ein.
‫Alles klar, also jetzt.
‫Machen wir dasselbe mit unserem Fernseher.
‫Lassen Sie uns fortfahren und ein TV-Objekt erstellen.
‫Ich werde dies auf meinem Fernseher aufrufen, der ein neues TV-Objekt sein wird, und dieser wird ebenfalls ausgeschaltet und
‫wird ein Samsung-Gerät sein.
‫Und jetzt lass uns meinen Fernseher benutzen, der eingeschaltet ist, um ihn einzuschalten.
‫Und das nennt man dann die Watch-TV-Methode.
‫Also, lassen Sie uns das jetzt ausführen und wir werden sehen, dass jetzt unser Fernseher eingeschaltet ist und wir ihn
‫beim Radiohören sehen.
‫Also eine ziemliche Aufgabe.
‫Aber im Grunde macht unser Code, was wir wollen.
‫Jetzt sehen Sie, dass wir die Einschaltmethode sowohl für das Radio als auch für das Fernsehen aufrufen,
‫obwohl die TV-Klasse diese Methode nicht hat.
‫Es hat also keinen Schalter.
‫Nun, schalten Sie die Methode ein oder aus.
‫Das Radio hat diese Methoden auch nicht, aber das liegt daran, dass sie von
‫dem elektrischen Gerät erben, das diese Methoden ein- und ausschalten lässt, damit wir es verwenden können.
‫Im Grunde verwenden wir hier also die Methode der Basisklasse.
‫Also hier, Methode der Basisklasse.
‫Und hier verwenden wir die Methode der untergeordneten Klasse.
‫Die Einschaltmethode kommt also vom Eltern-Plus und die Fernsehmethode kommt vom Kind-Plus.
‫Jetzt können wir also den Code erstellen, der für die Klasse einzigartig ist und sich sozusagen nicht wiederholt, sowohl direkt in der
‫TV-Klasse als auch in der Radio-Klasse.
‫Aber alles, was gleich ist und für Elektrogeräte im Allgemeinen relevant sein wird, können
‫wir hier schaffen.
‫Vererbung hat noch viel mehr zu bieten, und natürlich werden wir uns all das in diesem Kapitel
‫ansehen.
‫Wir sehen uns also im nächsten Video.