Das Video kommt von YouTube: erst beim Abspielen verbindet sich die Seite mit YouTube (Google).
Grundlagen d. Informatik u. Programmierung 2: 4.1 Vererbung: Einführung (SoSe 2020)
Das Wichtigste aus dem Video
Tipp auf eine Zeit – das Video springt genau dorthin.
Transkriptautomatisch erstellt · 82 Zeilen
- [Musik] dach zusammen wir kümmern uns jetzt um vererbung in diesem blog von videos da
- sind wir eben wieder bei der objektorientierten programmierung und wir starten mit einer relativ knappen einführung in das thema und gucken uns
- code an den war aus der einführung in die objektorientierte programmierung hier aus dem video schon kennt oder zumindest sollten sie den wiedererkennen
- und wir gehen dann in den späteren videos 2 bis 4 zu diesem teil auch ein bisschen tiefer aber fangen mit dem einfachen beispiel
- an machen aber noch mal einen schritt zurück zu dem was pianist raus druck zur objektorientierten programmierung geschrieben hat das ging so in dem
- artikel probleme shake shake shake shake funktion es etwas schreibt da probleme in der programmierung gibt's bisher was nicht objektorientiert machen das war
- mir generelle konzepte haben die wir nachher weiter konkretisieren oder spezialisieren und dass das wahrscheinlich nicht ganz so ausdruckbar
- ist bisher dann geht's weiter expressionistischen taking advantage of the financing oriented programming ja das war im endeffekt das was ich gerade
- schon gesagt hatte objektorientierte programmierung macht genau das zu greifbar oder benutzt genau das dass ich das ich mir um diese konzepte gedanken
- mache dass ich eben ein generelles objektbeschreibung klasse was auch immer habe und davon dann spezialisieren kann das ist objektorientierte programmierung
- jetzt geht es noch mal weiter language of construction listen to be expressed in this supports object oriented programming language ist und dadurch als
- wir das zitat beim letzten mal schon hatten dahin gesagt ich kann durchaus in cee objektorientiert programmieren oder quasi objektorientiert denken und
- arbeiten die sprache an sich unterstützt das konzept nicht und genau mit diesem ansatz gucken wir jetzt noch mal rein
- vererbung das ist das thema dieses vier blocks gegen doch schon wenn sie ein c programmierer fragen wird der ihnen auch sagen ja klar machen wir das nc auch ja
- da muss man aber schon sagen ganz kleines bisschen dann für uns seinen tricks anwenden vielleicht um dahin zu kommen dass gucken wir mal das kennen
- sie wir haben unsere person die einen vornamen und einen nachnamen hat das hat man ganz am anfang an diesem beispiel wo
- wir vom hohen speicher bis hin nach her zu datenstrukturen oder klassen gegangen sind wir haben die personen die hat einen vornamen hier und einen nachnamen
- und alles zusammen ist in einer datenstruktur zusammengefasst und klassisch sowie das in szene üblich ist damit ich nicht strack person schreiben
- muss wenn ich nachher benutzer steht da noch mal ein teil des davor und der teig der vom truck person geht daneben auf anpassen was mache ich damit ich wollte
- ja dem beispiel nicht nur personen haben ich habe ja auch studierende studierender ist auch wieder eine eigene datenstruktur ebenfalls wieder mit dem
- trakt jugend aufgeteilt deffte aufs jugend was steckt da drin da steckt ein personen drin und die wird jetzt erweitert oder
- spezialisiert in dem aus einer allgemeinen person ein student eine studentin wird und der matrikelnummer ihm dran gehängt wird und dann in den
- einführenden beispiel was wir hatten nicht nur das war block 2 haben wir dann noch eine studierende an studierenden in einem studiengang modelliert ebenfalls
- wieder der datenstruktur ebenfalls wieder das tief auf genau den gleichen namen damit ich mir das truck sparte hin zu schreiben was haben wir da drin und
- da haben wir auch wieder dass die datenstruktur ist jugend drinstehen spezialisieren die aber noch weiter in das ist ein student eine studentin in
- einem studiengang der oder die nach einer bestimmten studienordnung studiert naja wenn wir das angewendet haben können wir
- das ganz genauso schreiben wir können uns unsere erste studierende bauen jane appleseed mit der matrikelnummer dem studiengang den sie studiert und die
- prüfungs ordnung eintrage eintragen nachdem sie studiert und das ganze können wir uns dann in der prüfungs liste ausgeben wenn wir so wollen wir
- können uns von unserer jane den teilst jugendhaus geben und da rein gucken und jugend ist eine person und eine person hat einen vornamen leerzeichen das
- gleiche spiel für den nachnamen und dann immer noch fragen unsere gute jane studiert doch mit einer matrikelnummer und anschließend jane studiert in einem
- studiengang jane hat hinterher auch eine prüfungs ordnung nach der sie studiert das kriegt man in cee hin und gewissermaßen denken sie da schon
- objektorientiert im sinne von unser student unsere studenten in einem studiengang erbt das student sein und dieser student diese studentin erbt auch
- wieder dass personen sein wenn man ein ganz kleines bisschen genauer hinguckt ist das tatsächlich nicht vererbung genau genommen hat unser in einen
- studiengang eingeschriebener student und so in eingeschriebene studentinnen in einem studiengang hat ein feld student studentin und dieser datensatz wiederum
- hat ein feld person das ist nicht die ist beziehung die ich eigentlich in der färbung haben möchte ich möchte eigentlich schreiben
- der student in einem studiengang ist ein student und das wiederum ist eine person das ist aber nicht diese mutation das hier ist er eine art in rotation
- macht aber nix viel anderes konnte ich in zehn nicht machen guck mir noch mal hin ich musste es so schreiben und da finden
- wir auch wieder dieses hat jane hat nämlich die studentin diese studenten hat wiederum eine person und diese person hat an vornamen
- das sehen wir also und noch im code wenn wir zu dieser ist beziehung wollen würden wir es gerne anders schreiben und zwar so dann ist jane nämlich eine
- studentin und die studentin ist gleichzeitig eine person und damit hat jain als studentin und als person den vornamen und ich muss nicht mehr den
- umweg gehen schreiben wir das im ml notation sind wir genau hier dann sieht sich so aus der student die studentin in einem studiengang erbt von student oder
- studentin und das hier wiederum ihr habt von personen und genau das können wir in c++ auf diese weise ausdrücken wir bauen uns die datenstruktur personen
- genau wie vorher mit vor und nachnamen jetzt erbt die datenstruktur student aber öffentlich von der person also dieser pfeil mit der offenen fall spitze
- nach oben ist ingo tatsächlich so ausgedrückt und hinzugefügt wird jetzt lediglich die matrikel nummer und ähnliches passiert nachher mit juden den
- programmen auch hier wird wieder öffentlich geerbt für dieses beispiel von der klasse jugend und als verfeinerung kommt dazu einmal der
- studiengang und die studienordnung und der anwendenden coach auf der folie ist gleich geblieben werden uns jetzt einfach mal von unten nach oben gebaut
- damit sie war an der stelle die übersicht behalten ok so sehr es in c++ aus für das beispiel was ich in dieser einführung
- verwendet habe von speicher hinzu klassen immer noch mal ein anderes beispiel um das vielleicht noch ein bisschen klarer zu machen was da
- passiert und was da noch nebeneffekte sein können nehmen wir drei elektrowerkzeuge links ein bohrer in der mitte eine kreissäge und rechts band
- schleifgerät alle drei sind ja als elektrowerkzeuge sicherlich mit einem motor ausgestattet motor im bohrer motor einer kreissäge
- und ein motor im band schleifgerät in den motor kann jetzt jeweils natürlich ein anderer typ von motor verbaut sein also genauer gesagt in dem feld motor
- kann jetzt ein anderer typ von motor verbaut sein aber es gibt in bora irgend etwas wo ich ein motor einstecken kann es gibt der kreissäge irgend etwas wo
- ich ein motor einstecken kann und es gibt im band schleifgerät irgend etwas wo ich ein motor einstein packen kann und alle drei geräte haben sicherlich an
- und ein ausschalter hier finde ich im buch den finde ich in der kreissäge und den finde ich in bands live geräte und dann haben alle drei
- etwas spezifischer funktionen und eigenschaften natürlich und zwei gucken wir uns hier an der bohrer kann bohren kreissäge kein segen oder schneiden und
- das band schleifgerät kann schleifen was machen wir jetzt damit das sind alles drei elektrowerkzeuge die haben ein paar gemeinsamkeiten und
- die haben paar unterschiede feinheiten die sie dann wieder spezifisch für sich machen oder spezieller machen vom elektrowerkzeug hin zu dem ganz
- speziellen elektrowerkzeug was dann sind und diese gemeinsamkeiten die würden wir gerne tatsächlich zusammenfassen hier an der stelle in der klasse
- elektrowerkzeug warum weil diese gemeinsamkeiten wenn wir das in kot ausdrücken doppelt vorkehren der motor mit dem einen ausschalter kam empor
- vorkam in der kreissäge vorkam im band schleifgerät vor war natürlich unterschiedlich waren unterschiedlicher motor bei der schalter ist auch darum
- das konzept ist das gleiche jeweils das gleiche und das würde ich natürlich gerne in einer gemeinsamen eltern klasse oder basis klasse zusammenfassen was
- daneben das elektrowerkzeug ist dadurch dass ein bohrer an elektrowerkzeug wird es dadurch ist eine kreissäge ein elektrowerkzeug ist
- und dadurch dass ein band schleifgerät ein elektrowerkzeug ist haben die automatisch ein motor mit an- und ausschalter und dass dieses haben
- automatisch kann ich durch vererbung ausdrücken weil alle drei an elektrowerkzeug sind und je nachdem wie ich durch dieses diagramm gehe habe ich
- von unten nach oben oder von oben nach unten gehe generalisierte ich einmal vom bohrer zu dem generellen konzept zu der generellen klasse elektrowerkzeug oder
- wenn ich von oben nach unten gehe spezialisiere ich das elektrowerkzeug hin zu einem bandschleifer da es hier wie gesagt einmal als quasi uml diagramm
- ausgedrückt und jetzt nochmal in c++ code ich habe meine klasse elektrowerkzeug mit den öffentlichen methoden an und ausschalten und den
- privaten attribut motor da kann ich natürlich gucken dass ich jeweils den richtigen motor ein stecker aber ich habe einfach wo ich einen motor
- einbauen kann aber ein an- und ausschalter gibt es erstmal dadurch dass es ein elektrowerkzeug ist und das fach für den motor gibt es auch dadurch dass
- es elektrowerkzeuge als die generelle basis klasse spezieller wird's wenn ich daraus einen bohrer mache hier oben eine kreissäge oder ein band schleifgerät
- alle drei erben öffentlich vom elektrowerkzeug hier und hier auch nochmal sie erben öffentlich davon damit sind sie elektrowerkzeuge im gegensatz
- zu dem einführenden beispiel haben aus c hier ist es sie sind tatsächlich elektrowerkzeuge kriegen also automatisch den an- und ausschalter mit
- und kriegen automatisch auch den motor mit können dann aber etwas spezielleres spezialisieren also das werkzeug durch eine funktion zum boden durch eine
- member funktion zum schneiden bei der kreissäge und durch eine member funktion zum schleifen beim bandschleifer und jetzt mal immer noch mal ein ganz
- kleines bisschen von dem gemälde graben wieder rein dieses erbt von drücken wir da natürlich hier mit den pfeilen aus und dann haben wir beide diagramme
- endeffekt wieder zusammengebracht haben wir den code und einmal die schreibweise im ml diagramm was haben uns angeguckt vererbung ging in cee als art und weise
- zu programmieren das ist vielleicht nicht ganz so komfortabel warum es ist nicht komfortabel weil mir die sprache die ausdrucksweise nicht zur verfügung
- stellt dann schlicht und ergreifend weil dadurch c nicht objektorientiert ist im sinne von die sprache ist nicht objektorientiert arbeiten kann ich da
- trotzdem gewissermaßen objektorientiert und dann haben uns angeguckt da sich diese vererbung in c++ tatsächlich mit bordmitteln als echte
- vererbung ausdrücken kann die sprache also dann tatsächlich objektorientiert ist im sinne von strauß druck klar es wäre sehr verwunderlich strauß trupp
- hat's erfunden das c++ und wir haben uns ein ganz kleines ein führendes beispiel angeguckt einmal genau genommen zwei einmal das mit den studierenden und
- einmal das mit den elektrowerkzeugen und das wird uns wahrscheinlich auch noch ein kleines bisschen begleiten [Musik]
Zum Nachlesen
Abgeleitete KlasseDie abgeleitete Klasse erbt alle Attribute (Member) und Methoden der Basisklasse, kann dabei aber nur auf die nicht als privat deklarierten direkt zugreifen.
ObjektorientierungUnter Objektorientierung (kurz OO) versteht man in der Softwaretechnik eine Sichtweise auf komplexe Systeme, bei der ein System durch das Zusammenspiel …
Klasse (Objektorientierung)Die Klasse dient als Bauplan für die Abbildung von realen Objekten in Softwareobjekte und beschreibt Attribute (Eigenschaften) und Methoden (Verhaltensweisen) …
Vererbung (Programmierung)Die Vererbung dient dazu, aufbauend auf existierenden Klassen neue zu schaffen, wobei die Beziehung zwischen ursprünglicher und neuer Klasse dauerhaft ist. Eine …