Das Video kommt von YouTube: erst beim Abspielen verbindet sich die Seite mit YouTube (Google).
Java Tutorial Deutsch (German) [24/24] - Vererbung
Das Wichtigste aus dem Video
Tipp auf eine Zeit – das Video springt genau dorthin.
Transkriptautomatisch erstellt · 109 Zeilen
- hallo und herzlich willkommen auf dem youtube-kanal von programmieren - staaten punkt.de mein name ist hendrik und in diesem heutigen video soll es um
- das thema vererbung in java gehen wir befinden uns mittlerweile im vierundzwanzigster video des java crash kursus und ich werde auch gleich an
- dieser stelle schon mal vorweg nehmen dass dies das vorerst letzte video zum thema jarvis das soll jetzt natürlich nicht heißen
- dass wir in zukunft nichts mehr zum thema java bringen werden aber wir schließen diesen crashkurs hier ab der ja einfach nur den sinn hat dass
- man einem einsteiger der noch nie etwas von java gehört hat einen einstieg gibt eine möglichkeit gibt sich eben hier mal die grundkonzepte von java anzugucken
- und dann eben darauf basierend die entscheidung zu treffen ob er sich tiefer in die materie einarbeiten möchte oder eben nicht und mit all dem was du
- hier in diesen crashkurs lernst beziehungsweise gelernt hast falls du die anderen videos angesehen hast bist du bereits in der lage erst der eigene
- kleinere programme zu schreiben du kannst also nach diesem crash kurs auf einfach schon mal damit beginnen zu üben alle sachen die du hier gelernt
- hast in der praxis anzuwenden und dann wirst du eben noch mal deutlich deine fähigkeiten steigern und wie gesagt es ist nicht das ende
- keine sorge es wird noch weiteren java content geben aber wir werden jetzt dann auch mal wieder andere serien zunächst mal produzieren sage ich mal
- damit wir eben auch ein bisschen abwechslung auf diesem kanal haben umso jeden befriedigen zu können und auch für dich werden sehr spannende themen kommen
- besonders wenn du aber entwickler bist bleibt also auch in zukunft unbedingt dabei und bleibt unser abonnent das wird jetzt auf jeden fall sehr freuen
- jetzt verlieren wir aber keine weitere zeit und deswegen sehen wir uns zunächst mal an was wir jetzt in diesem abschließenden video in diesem crash
- kurs noch lernen werden zunächst werden wir uns mal ansehen was ist verboten also was versteht man überhaupt darunter
- wir werden also in der theorie auf dieses thema eingehen danach kommt der praxisteil da werden wir uns ansehen wie man die vererbung
- letztendlich im realisiert und ich werde das auch direkt anhand eines beispiels zeigen so dass du direkt verstehst wieso vererbung
- sinnvoll ist beginnen wir also mit dem theorie teil was ist vererbung vererbung ermöglicht das erweitern von klassen ohne diese direkt zu verändern
- das bedeutet also du hast eine klasse die hast du irgendwann mal programmiert jetzt möchtest du sie beispielsweise erweitern das heißt du möchtest zum
- beispiel neue attribute hinzufügen oder du möchtest neue methoden hinzufügen und das kannst du jetzt eben in zukunft machen ohne dass du diese klasse die du
- bereits hast noch mal verändern muss das hat den hintergrund dass wenn du beispielsweise die klasse schon voll umfänglich getestet hast und sie schon
- im betrieb eingesetzt wird sozusagen dann macht es ist natürlich ärgerlich wenn du wegen einer kleinen änderung oder mehreren kleinen änderungen die
- ganze klasse erneut testen muss und genau deswegen kann man beispielsweise vererbung verwenden um eben sich das ganze zu sparen damit man ja seine
- programme auch wenn sie schon mal programmiert fertig programmiert wurden nachträglich noch erweitern zu können aber da gibt es auch noch ganz weit in
- die materie reihen des thema software design da werden wir auf diesem kanal auch noch darauf zu sprechen kommen wie gesagt wir
- sind jetzt aber bei der vererbung du musst dir einfach nur merken die vererbung ermöglicht das erweitern von klassen was ist also das grundprinzip
- das eben hinter dieser bewerbung steckt das grundprinzip ist man erstellt einfach eine neue klasse und diese klasse soll daneben eine bestehende
- klasse erweitern und das macht sie indem sie quasi alle attribute und methoden von der klasse erbt die erweitert werden soll und dann programmiert man eben hier
- noch zusätzliche funktionalitäten hinzu also in diese neue klasse oder eben attribute und das ist eigentlich schon das ganze konzept hinter dieser
- vererbung das klingt jetzt in diesem moment hier noch sehr abstrakt für dich nehme ich jetzt mal an für mich klang das damals auch selbst trakt als ich das
- zum ersten mal gelernt habt aber ich habe ein gutes beispiel vorbereitet welches wir uns jetzt direkt mann der praxis ansehen möchten und zwar habe ich
- jetzt in diesem beispiel ein neues projekt angelegt und in diesem beispiel habe ich jetzt drei klassen definiert einmal die klasse programm die
- enthält wie gewohnt die methode und jetzt noch zwei weitere klassen einmal die klasse dorf und einmal die klasse geht also eine klasse die ein hund
- repräsentiert und eine klasse die eine katze repräsentiert wir sehen hier in der klasse dort wir haben zwei attribute einmaleins für den namen weil jeder hund
- hat ja irgendwie einen namen und ein mal das attribut age was eben das alter eines hundes repräsentiert da jeder hund ein gewisses alter hat zudem gibt es
- jetzt hier eine methode nämlich die methode sleep die sorgt dafür dass der hund schlafen kann und dazu gebe ich einfach auf der konsole schlafen aus um
- das ganze ja beispielhaft darzustellen und ein hund kann natürlich auch bellen und deswegen gibt es hier die methode park und da gebe ich auf der konsole
- einfach bow wow aus jetzt werden wir mal ein blick auf die klasse geht und hier sehen wir auch hier wäre ein name und ein attribut für age also für das alter
- der katze auch hier gibt es eine methode sleep die macht auch genau das gleiche wie die methode von der klasse dort nämlich schlafen punkt punkt punkt auf
- der konsole ausgeben und hier gibt es jetzt noch eine methode per und diese methode sorgt dafür dass die katze schnurrt weil die welt eben
- nicht eine katze schnurrt bekanntlich so und jetzt solltet ihr vielleicht schon auffallen dass das ganze hier nicht so optimal gelöst ist wieso weil wir sehr
- viel redundanz im kot haben redundanz ist nie gut das ist fehleranfällig und naja das zeigt uns eigentlich schon dass wir es irgendwie
- besser lösen könnten und zwar können wir es mit vererbung besser lösen und genau um das soll es jetzt in diesem beispiel gehen
- machen wir uns mal klar was alles in diesen beiden klassen gleich ist einmal die attribute string nahm und in touch weil sowohl die klasse dort hat sich
- hier als auch die klasse geht das ist vollkommen identisch und somit redundant und natürlich die methode sleep weil ein hund kann schlafen und eine katze kann
- genauso schlafen die einzigen spezifischen methoden die sich wirklich naja unterscheiden von diesen beiden klassen
- das ist einmal diese methode ich hier die dafür sorgt dass die katzen schnurren kann und es ist diese methode hier die dafür sorgt dass der hund
- bellen kann und das möchten wir jetzt wie gesagt mit färbung besser lösen damit wir hier nicht so einen redundanten code haben und hier zu bauen
- wir uns jetzt mal eine weitere klasse und diese klasse die hat jetzt einen allgemeineren namen nämlich sie hat den titel animal und wir wissen ja jeder
- hund ist ein animal weil jeder hund ist ein tier und jede katze ist auch ein animal weil jede katze ist auch ein tier und das zeigt uns schon diese klasse n m
- die ist wohl allgemeiner gehalten als diese klasse dort und cat oder anders herum gesagt die klassen dog und kate sind spezifischer als diese klasse
- animal weil sie dann eben das tier noch mal genauer beschreiben und man in dieser klasse dort schon weiß okay es ist ein hund und nicht ein x-beliebiges
- anderes tier so dass der sinn von der vererbung ist jetzt folgender wir können jetzt alle attribute und methoden die in beiden klassen gleich sind einmal
- kopieren und hier raus löschen und in diese klasse nr 1 kopieren das bedeutet die klasse animal hat jetzt eben die attribute nahm und age weil
- jedes tier hat einen namen jedes tier hat ein alter und jedes tier kann schlafen wie so wie hier diese methode sleep implementiert haben so und der
- dort wiederum das einzigste was spezifische was der jetzt noch kann neben diesen ganzen dingen ist eben zu wählen und diese methode die können wir
- jetzt natürlich nicht hier bei animal rein programmieren das würde keinen sinn machen denn nicht jedes animal also nicht jedes tier kann bällen
- das ist eben in dieser allgemeinen klasse da passt das ganze noch nicht da können wir das einfach nicht rein programmieren
- das gehört einfach in die klasse doch so und jetzt möchten wir mal die vererbung herstellen ich habe ja gesagt mit der vererbung
- kann man eine klasse erweitern und zwar möchten wir jetzt eben diese klasse m 11 das ist ja genau das was wir tun möchten animal hat ihre attribute und dieses
- lied methode wir möchten sie aber jetzt speziell auf den hund bezogen erweitern und zwar um die methode bällen war dein hund ja auch
- bellen kann und dadurch bietet sich jetzt eben an dass wir die klasse hund von der klasse animal erben lassen und das realisiert man ganz simpel wir gehen
- hier oben neben den klassen nahmen dort machen ein leerzeichen schreiben extens das ist eben das schlüsselwort dass wir für die vererbung benötigen
- und jetzt schreiben wir den namen der klasse hin von der diese klasse dort geht's erben soll und in unserem fall ist das eben von der klasse animal und
- dann speichern wir das ganze so und damit haben wir bewirkt dass diese klasse dort jetzt eben alle attribute von animal erbt und auch die methoden
- von animal erbt die sind jetzt quasi auch alle hier verfügbar sozusagen und dann gibt es eben noch die methode park die wird zusätzlich hier auch noch
- definiert so und jetzt kann ich zum beispiel mal ein objekt vom typ dort erstellen ich nenne es doch dort ist gleich new york der standard konstrukte
- wird jeden ausgeführt und jetzt sage ich dort punkt sleep und wir sehen keine fehlermeldung und wenn ich das programm aus für schlafen punkt punkt punkt das
- ganze funktioniert also ich rufe also auf dem objekt vom typ dort die sleep methode auf aber die sleep methode wurde ich hier gar nicht definiert
- hier haben wir nur die bark methode aber die klasse dort erbt von der klasse m und hier ist eben diese methode enthalten deshalb können wir sie auch
- aufrufen und das ist im prinzip dieses ganze konzept hinter der vererbung bei was man jetzt hier noch aufpassen muss und das
- ist auch schon wieder eher fortgeschrittenes thema ist eben hier wieder mit den sichtbarkeit modifizieren wir haben hier nämlich dieser als privat
- deklariert das heißt wir müssten jetzt hier die götter und setter hinzufügen source generate getty centers das haben wir schon gelernt für die beiden
- attribute in n m und da diese guetta und wetter wieder public sind werden die jetzt auch hier wieder sauber vererbt an die klasse dort
- und wir können halt von außen darauf zugreifen das heißt jetzt können wir auch von hier außen wieder sagen zum beispiel nehmen
- und dann können wir dem rund einen namen geben zum beispiel bello und dann können wir sagen gebt das ganze gibt den namen doch mal auf der konsole aus indem man
- sagt dort punkt geht nehme man wenn wir es jetzt ausführen dann wird eben der name bello ausgegeben also auch bei der vererbung bleiben eben hier diese
- sichtbarkeit modifizierte aktiv das heißt da muss man wieder drauf achten aber da gibt es jetzt auch noch mehrere sichtbarkeit modifizieren nämlich zum
- beispiel den sichtbarkeit modifiziere protected aber das sind alles fortgeschrittene themen die ich jetzt hier in diesem video noch nicht
- behandeln möchte weil sie eben ja wie gesagt eher zu überforderung führen am anfang hier soll es nur darum gehen dass du das
- prinzip der vererbung jetzt zunächst mal verstehst und wie gesagt wir haben jetzt hier einfach alles von der klasse m l an die klasse doch vererbt und jetzt können
- wir die klasse gehen hier können wir das jetzt auch alles raus löschen weil auch eine katze ist natürlich ein tier und deswegen können wir sagen cat extension
- immel und nur die spezifische methode die das ganze noch erweitert also die klasse m erweitert die implementieren wir hier in der klasse katze und jetzt
- können wir natürlich auch wieder uns hier eine katze erzeugen die sleep methode ausführen und so weiter und jetzt siehst du haben wir eine klasse
- mehr aber das programm ist wesentlich besser strukturiert weil wir haben jetzt hier keinen redundanten code mehr jeder code steht also nur einmal da das
- heißt wir haben nicht in jeder tier klasse jetzt rename string entstehen und auch nicht in jeder die sleep methode und das ist ein großer vorteil denn wenn
- du mal bedenkt dass klassen ganz ganz groß werden können das heißt die klassik at könnte ja zum beispiel 200 attribute haben und 2000 methoden und wenn das
- diese 2000 methoden man darf von 1000 methoden für alle tiere gelten da müssen wir die natürlich jetzt nicht in jeder klasse schreiben sondern dann
- definieren wir uns eben hier eine so genannte eltern klasse das sind auch noch mal wichtige begriffe die ich hier einführen möchte denn die klasse animal
- also die klasse von der letztendlich klassen erben die bezeichnet man immer als so genannte super klasse oder eben eltern klasse
- da gibt es mehrere begriffe unter anderem diese 24 da kannst du dir eigentlich aussuchen welchen du verwendest war meint das
- gleiche damit und die klassen die ihm von einer klasse erben die nennt man so klasse oder kind klasse und dieses prinzip mit der färbung kann man jetzt
- immer weiter führen das heißt wir haben wir die klasse dort wir könnten jetzt noch spezifischere klassen bauen zb eine klasse labrador
- und eine klasse schäferhund und die erben dann wieder von der klasse dort und für diese neuen klassen zb für die klasse labrador ist daneben die klasse
- dort die super klasse und labrador ist für dort die kind klasse aber die klasse dort hat gleichzeitig auch eine super klasse und zwar die animal klasse also
- man kann sich das dann wie so eine vererbung hierarchie deswegen bezeichnet man es auch so vorstellen also die man man hat nicht immer nur diese zwei
- ebenen einmal eine eltern klasse eine kind klasse sondern das ganze kann man immer immer feiner gliedern und das ist im prinzip wird schon mal das wichtigste
- zur vererbung das heißt wenn du etwas vererben möchtest dann brauchst du dir eine klasse von der geehrt werden soll dann brauchst du dir eine oder
- x-beliebige weitere klassen die diese klasse von der geehrt werden soll erweitern sollen in diesem fall die klasse dort eben um
- diese methode park und dann schreibst du einfach nur neben den klassen nahmen das schlüsselwort extens und den namen der klasse von der geehrt werden soll
- und dann wird das ganze intern in java schon geregelt und die vererbung steht und das ist ein wahnsinnig mächtiges feature das möchte ich unbedingt betonen
- und natürlich geht es auch noch viel viel tiefer in die materie hier rein man kann da ganz ganz viele coole sachen mitmachen aber in diesem video solltest
- du wie gesagt das grundverständnis so das war alles zu diesem video was ich dir jetzt hier erklären wollte und wie gesagt es war das letzte video des crash
- kursus falls dir dieser crash kurs hier gefallen hat falls du was mitnehmen konnte ist falls du das gefühl hast du hast was gelernt oder dich für cover
- begeistern können im idealfall dann würde ich mich sehr freuen wenn du vielleicht einfach unter dem video ein bisschen feedback da lässt biete das
- ganze gefallen hat ob es der mehrwert gebracht hat mir persönlich hat es ehrlich gesagt sehr sehr viel spaß gemacht die ich hier in die
- programmiersprache java einzuführen und ich habe versucht das ganze so herunterzubrechen dass du auch wirklich einen einfachen einstieg hast das war s
- für dieses video und keine angst das war natürlich nicht das letzte video von mir oder auch nicht das letzte video vom janneck wir werden diesen kanal
- weiterführen und doch viele neue spannende serien starten einzelne videos starten und dann hoffen wir dass wir euch wahnsinnig viel mehrwert bringen
- und hier eine coole community aufbauen ich bedanke mich bei dir dass du gesehen hast und dann sehen wir uns im nächsten video bis dahin