Zum Inhalt springen
L

Das Video kommt von YouTube: erst beim Abspielen verbindet sich die Seite mit YouTube (Google).

Java Tutorial Deutsch (German) [24/24] - Vererbung

Programmieren Starten16:28 87.812 Aufrufe veröffentlicht Auf YouTube

Das Wichtigste aus dem Video

Tipp auf eine Zeit – das Video springt genau dorthin.

Transkriptautomatisch erstellt · 109 Zeilen
Herunterladen
  1. 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
  2. das thema vererbung in java gehen wir befinden uns mittlerweile im vierundzwanzigster video des java crash kursus und ich werde auch gleich an
  3. dieser stelle schon mal vorweg nehmen dass dies das vorerst letzte video zum thema jarvis das soll jetzt natürlich nicht heißen
  4. 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
  5. 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
  6. 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
  7. hier in diesen crashkurs lernst beziehungsweise gelernt hast falls du die anderen videos angesehen hast bist du bereits in der lage erst der eigene
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. kurs noch lernen werden zunächst werden wir uns mal ansehen was ist verboten also was versteht man überhaupt darunter
  15. wir werden also in der theorie auf dieses thema eingehen danach kommt der praxisteil da werden wir uns ansehen wie man die vererbung
  16. letztendlich im realisiert und ich werde das auch direkt anhand eines beispiels zeigen so dass du direkt verstehst wieso vererbung
  17. 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
  18. 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
  19. 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
  20. 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
  21. im betrieb eingesetzt wird sozusagen dann macht es ist natürlich ärgerlich wenn du wegen einer kleinen änderung oder mehreren kleinen änderungen die
  22. ganze klasse erneut testen muss und genau deswegen kann man beispielsweise vererbung verwenden um eben sich das ganze zu sparen damit man ja seine
  23. 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
  24. die materie reihen des thema software design da werden wir auf diesem kanal auch noch darauf zu sprechen kommen wie gesagt wir
  25. 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
  26. das eben hinter dieser bewerbung steckt das grundprinzip ist man erstellt einfach eine neue klasse und diese klasse soll daneben eine bestehende
  27. 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
  28. noch zusätzliche funktionalitäten hinzu also in diese neue klasse oder eben attribute und das ist eigentlich schon das ganze konzept hinter dieser
  29. 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
  30. 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
  31. jetzt in diesem beispiel ein neues projekt angelegt und in diesem beispiel habe ich jetzt drei klassen definiert einmal die klasse programm die
  32. 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
  33. 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
  34. 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
  35. 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
  36. 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
  37. 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
  38. 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
  39. 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
  40. 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
  41. viel redundanz im kot haben redundanz ist nie gut das ist fehleranfällig und naja das zeigt uns eigentlich schon dass wir es irgendwie
  42. 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
  43. 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
  44. 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
  45. genauso schlafen die einzigen spezifischen methoden die sich wirklich naja unterscheiden von diesen beiden klassen
  46. 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
  47. 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
  48. 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
  49. 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
  50. 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
  51. 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
  52. 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
  53. 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
  54. 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
  55. 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
  56. 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
  57. das ist eben in dieser allgemeinen klasse da passt das ganze noch nicht da können wir das einfach nicht rein programmieren
  58. 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
  59. 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
  60. 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
  61. 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
  62. 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
  63. 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
  64. 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
  65. 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
  66. 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
  67. 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
  68. 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
  69. 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
  70. aufrufen und das ist im prinzip dieses ganze konzept hinter der vererbung bei was man jetzt hier noch aufpassen muss und das
  71. ist auch schon wieder eher fortgeschrittenes thema ist eben hier wieder mit den sichtbarkeit modifizieren wir haben hier nämlich dieser als privat
  72. 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
  73. 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
  74. 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
  75. 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
  76. 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
  77. 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
  78. beispiel den sichtbarkeit modifiziere protected aber das sind alles fortgeschrittene themen die ich jetzt hier in diesem video noch nicht
  79. 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
  80. 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
  81. 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
  82. 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
  83. 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
  84. 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
  85. 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
  86. 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
  87. 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
  88. 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
  89. also die klasse von der letztendlich klassen erben die bezeichnet man immer als so genannte super klasse oder eben eltern klasse
  90. da gibt es mehrere begriffe unter anderem diese 24 da kannst du dir eigentlich aussuchen welchen du verwendest war meint das
  91. 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
  92. 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
  93. 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
  94. 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
  95. 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
  96. 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
  97. 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
  98. x-beliebige weitere klassen die diese klasse von der geehrt werden soll erweitern sollen in diesem fall die klasse dort eben um
  99. 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
  100. 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
  101. 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
  102. 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
  103. 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
  104. 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
  105. 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
  106. programmiersprache java einzuführen und ich habe versucht das ganze so herunterzubrechen dass du auch wirklich einen einfachen einstieg hast das war s
  107. 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
  108. weiterführen und doch viele neue spannende serien starten einzelne videos starten und dann hoffen wir dass wir euch wahnsinnig viel mehrwert bringen
  109. 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