💻 JAVA | Vererbung 07 - Polymorphie und dynamische Bindung Prof. Dr. Michael Helbig https://www.youtube.com/watch?v=XlyTou8pd4Q Transkript (automatisch erstellt) 0:00 dann kommen wir jetzt zu einem thema das ist am anfang auch gewöhnungsbedürftig nämlich die sogenannte polymorph ii also poly ist 0:11 griechisch für viel & more more virgestallt also die vielgestaltigkeit übersetzt was hat das zu bedeuten ja insgesamt eine unterklasse als eine sub 0:23 klasse kann ich im kontext der oberklasse überall einsetzen und verwenden also überall wo ich beispiel die studentin habe überall da kann ich 0:34 auch einen subtyp einsetzen also wenn ich zb eine methode haben wo der parameter ein student ist kann ich auch einen ähnlich jugend übergeben kann auch 0:44 einen ews jugend übergeben als beispiel bei der zuweisung unterklasse an oberklasse zb ein student einen informatikstudenten der passt in die 0:53 variable ist juden 3 weil das ist ja ein subtyp von student deswegen ist das erlaubt wir wollten in das zeigen ich könnte 1:03 anstatt dem hier könnte ich auch juden schreiben und anstatt den wir künftig auch juden schreiben und alles funktioniert genauso 1:14 wie bisher ohne veränderung und das geht weil im student ist ein subtyp von bwl student ist ein subtyp von stewart dass der cast 1:26 auch in eine variable vom super typ weiteres beispiel 1:35 bei einem methoden aufruf das ist eigentlich das wo man das dann gebraucht nämlich will gewisse sachen ausführen auf allen studenten und das ist mir 1:46 gleich ob das ein informatik stellt ist ein bwl student oder ein mechatronik student ich will die alle zusammen behandeln ja ich will auf allen 1:54 studenten eine methode aufrufen beispiel die sehr helau methode und jeder student soll aber dann das machen was er für sich macht dh in dem fall sehr hoch so 2:05 jeder schritt den zug lösen wie es er machte informatik stein stellt informatikstudent fordern an der bwl-student gestellt bwl-student voran 2:13 also folgen der coach ich habe mal ist einfach eine liste von studenten erzeugt also eine linkliste von studenten und einen allgemeinen studenten hinzugefügt 2:22 einen informatik studenten und einem bwl studentin dann gehe ich diese liste mit einer schleife durch und dann häufig auf jedem studenten die say hello methode 2:33 auf die frage ist jetzt was für särge mit holz aufgerufen also es ist eine objekt 2:40 variable und die ist vom typ student und die antwort ist es wird immer die methode vom objekt aufgerufen egal was also unabhängig von der variable was 2:51 tiefen typ hat und das objekt hier ist einst jugend das objekt hier ist ein im jugend das heißt wenn es dann der instant ist dann wird die methode von 3:02 vom impfstudien aufgerufen und wenn es auf ein objekt vom typ dws jugend zeigt dann wird die methode vom wwf jugend aufgerufen ja das wollen sie auch kurz 3:15 mal anschauen also wir ändern den code in der methode folgendermaßen ich mache mir eine linkliste link list von juden ja wenn ich eben 3:26 alle studenten reinpacken will dann muss ich die super typen nehmen ich kann es nicht in unternehmen zum beispiel würden die höhe 3:33 infestans reingehen ich muss jetzt ein supertyp nehmen und das nicht mal ist das jugend list jugend lässt nämlich diesmal für new nimmt lässt 3:44 und jetzt student liszt wollte ich nenne jetzt füge ich diesen zu drei stunden ins jugend list punktet 3:54 dann schwillt ihm gar nicht zwischenspeichern in der variable ich tue sofort den hinzunehmen zur liste gute 4:03 programmiersprachen muss ich mir noch bauen aber jetzt sage ich hier jugendliche sehen dass juden news jugend man sich 4:14 noch eine klammer zu machen das noch größer wird zu der studenten liste zuerst im allgemeinen studenten 4:22 dann in informatik studenten und dann den bwl-studenten füge ich zur liste hinzu dann gibt es die variablen nicht mehr 4:33 und jetzt in einer schleife vor jugend die falsche hergenommen jugend jugend list sag ich's 4:48 jugend.de hallo und was passiert ist haben die antwort ist dass alle gleichen also fürs einmal aus und sie sehen es ist das gleiche und warum und das war 5:00 kurz mal verstehen also dieses prinzip der dynamischen bindungen heißt das auch also zu kompilieren zeit weiß ich nur die variable ist vom typ ist jugend die 5:10 objekt variable aber dann während der laufzeit wird dann wirklich geguckt was ist denn es auch was für ein objekt zeigt denn das nämlich einmal auf das am 5:19 after some auf das und damit von dem jeweiligen subtyp die methode aufgerufen das dynamische bindung von der methode genau dass wir uns mal die bagger 5:28 anschauen also mit dem break point habe ich schon gesetzt ich mache die bank also zuerst zeige ich ihnen meine studenten liste die es momentan noch 5:38 leer jetzt wird die erste student hinzugefügt der hugo meier der ist vom sehen sie auf den typ das ist ein student 5:46 dann wird dieser zweite hinzugefügt dass es ein instrument und dann wird der dritte hinzugefügt dass es ein bwl student in dieser liste hier 5:59 und jetzt gehe ich durch forst jugend das ist jetzt die variable hat typisch jugend und auf dem rufe ich jetzt auf 6:10 und das sehen sie kann man auch reingucken im der war die arabische jugend ist auch ein student drin war er erster das ist ja dieser hier deswegen 6:18 hier ist da gehen wir jetzt mal nicht das geliefert das was man erwartet nämlich wird also ohne ohne dass dafür erst wenn es da mal yahoo jetzt beim 6:28 zweiten da ist der student die objekt variable ist vom typs jugend aber drinnen differenziert ein objekt vom typ 6:37 instrument und deswegen wird hier auch das springen wir jetzt auch rein was ist jugend ist ein 11 deswegen will auch die methode vom in 6:48 studen aufgerufen step into naja ist mir übergesprungen wir landen jetzt in der klasse instrument und sind wieder hier 6:59 bams jugend und dann kommt wieder das größte münster-nord sap in dem fall und beim bwl-studentin ganz genauso 7:07 also hier ist das jugend an der bwl student und dann wird die methode auf dem bwl studenten aufgerufen kommt zuerst der bwl student und dann das 7:18 system funktioniert das dynamische findung von objekt methoden ja sie müssen der große vorteil hier ist dass man jetzt alle 7:27 studenten wohl dass verschiedene typen sind ja ein student ein bwl student einmal mechatronik student wenn die eine gemeinsame methode haben in der in einer 7:38 super klasse dann kann ich die alle zusammen behandeln normalerweise ohne objektorientierung müsste ich jetzt hier eine falle unterscheidung machen weiß 7:48 der student ein normaler student ist mache ich was weist der informatik weißt du denn informatikstudent ich mache was anderes als der student an der student 7:59 dann machen wir mal was anderes dann hätte hier eine fall unterscheidung mit konzept der vererbung ruf ich einfach die methode auf und die dynamische 8:05 bindung ruft dann die richtige methode auf in der jeweiligen klasse das ist eben der vorteil dass man hier jetzt objektorientierung genutzt 8:14 [Musik]