Polymorphie Polymorphie verstehen?

Loddakwin

Aktives Mitglied
Hi Leute,

also ich habe eine frage zu Polymorphie ich kann einfach nicht genau verstehen was das ist!
In meinem Skriptum steht das irgendwie nicht verständlich und im net hab ich auch nichts verständliches gefunden.

1. Typfamilien
Sei A eine Klasse und B eine Unterklasse von A – dann gilt:
wo ein A-Objekt erwartet wird (Zuweisung, Parameter), darf ein
B-Objekt eingesetzt werden.
Da das B-Objekt alle Eigenschaften des A-Objekts besitzt, ist dies
sinnvoll.

Code:
Person p;
Student s = new Student(...);
p = s;
...println(p.sameName(s));

Also ist Polymorphismus ganz normale vererbung?

Die umgekehrte Richtung ist problematisch, da nicht sicher ist, ob
die Referenz auf ein Unterklassenobjekt zeigt!
In Java lässt sich mit Hilfe des instanceof-Operators der Typ
abfragen:
Code:
Person p;
Student s;
s = p; //compile-time error!!
s = (Student)p; //ok – aber Laufzeitfehler wenn p
//keine Referenz auf Objekt vom Typ Student ist
if (p instanceof Student)
s = (Student)p;
else
...

Hier kann ich nicht verstehen warum man das hier prüfen sollte man sieht doch auf den ersten blick das p keine subclass von student ist sondern umgekehrt bzw weiss es da man den code ja selber geschrieben hat? Bzw man könnte nachschauen ob Person von Student erbt?

2. Methodenaufruf und dynamische Bindung
Sei wieder B eine Unterklasse von A, und die Methode m aus A
wird in B überschrieben – dann gilt:
beim Aufruf der Methode mittels r.m(...) entscheidet der Typ des
von r referenzierten Objekts welche Version der Methode
ausgeführt wird (und nicht der Typ von r).
Code:
Person p = new Person(...);
Student s = new Student(...);
p.display(); //klar: display von Person
s.display(); //klar: display von Student
p = s;
p.display(); //display von Student
Damit werden alle Objekte einer Typfamilie gleichartig behandelt
und es sind keine explizieten Fallunterscheidungen nötig!
Es wird automatisch die richtige Version der Methode ausgewählt,
auch wenn später weitere Unterklassen von Person hinzukommen.

Hier dieser Satz was soll das heißen versteh ich nicht ?
beim Aufruf der Methode mittels r.m(...) entscheidet der Typ des
von r referenzierten Objekts welche Version der Methode
ausgeführt wird (und nicht der Typ von r).
`
Ich wäre echt sehr sehr dankbar wenn mir das jemand erklären bzw ein bisschen erläutern könnte bitte bitte need it for a test :)

lg lodi
 
Zuletzt bearbeitet:

Saheeda

Top Contributor
Polymorphie ist ein Nebeneffekt der Vererbung.

Bei deinem Beispiel mit Schüler und Person sieht man vielleicht auf den ersten Blick, was Sache ist, bei größeren Projekten wird das schnell schwierig. Außerdem kannst du z.b auch mehrere Unterklassen von Person in einer List<Person> speichern. Und dan musst du den exakten Typ prüfen, wenn du auf eine spezielle Kindmethode zugreifen möchtest.
 

Loddakwin

Aktives Mitglied
Danke für deine Antwort hat mir schon etwas weitergeholfen aber könnte vielleicht jemand noch ein bisschen näher auf die fragen eingehen? :)

lg
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Vererbung - Polymorphie Java Basics - Anfänger-Themen 37
T Beispiel Polymorphie, Tier hund = new Hund(); Java Basics - Anfänger-Themen 3
T Aufruf der Methode einer Oberklasse, wenn sie in der Unterklasse überschrieben ist. Polymorphie. Java Basics - Anfänger-Themen 2
T Polymorphie und LSP Java Basics - Anfänger-Themen 4
KogoroMori21 Polymorphie-Verständnis Java Basics - Anfänger-Themen 5
C Polymorphie-Problem Java Basics - Anfänger-Themen 3
NeoLexx Zuweisungskompatibilität zwischen Vererbungsbeziehungen (Polymorphie) Java Basics - Anfänger-Themen 18
A Polymorphie Java Basics - Anfänger-Themen 4
O Polymorphie Java Basics - Anfänger-Themen 3
J Polymorphie und Dynamisches Binden richtig nutzen Java Basics - Anfänger-Themen 11
G Polymorphie, Vererbung, statischer Typ, Laufzeittyp Java Basics - Anfänger-Themen 2
K Polymorphie Java Basics - Anfänger-Themen 6
C Polymorphie Was genau ist Polymorphie und wann genau sollte man es verwenden? Java Basics - Anfänger-Themen 9
C Kurze Frage zur Polymorphie Java Basics - Anfänger-Themen 1
J Polymorphie - Beispielcode Java Basics - Anfänger-Themen 7
D Vererbung / Polymorphie Java Basics - Anfänger-Themen 5
T Polymorphie Java Basics - Anfänger-Themen 4
C Polymorphie - Erklärung bitte Java Basics - Anfänger-Themen 5
C Polymorphie Java Basics - Anfänger-Themen 1
H Polymorphie Verständnisproblem Vererbung/Polymorphie Java Basics - Anfänger-Themen 4
N Methoden Polymorphie Java Basics - Anfänger-Themen 11
M OOP Polymorphie/Vererbung Verständnisproblem Java Basics - Anfänger-Themen 2
E Polymorphie Beispiel Polymorphie Java Basics - Anfänger-Themen 2
K Polymorphie und instanceOf Operator Java Basics - Anfänger-Themen 6
S Vererbung Objekte in verwandten Klassen (Kovarianz, Polymorphie) Java Basics - Anfänger-Themen 4
R Polymorphie Java Basics - Anfänger-Themen 2
M Vererbung Enum Vererbung/Polymorphie Java Basics - Anfänger-Themen 2
P Polymorphie Java Basics - Anfänger-Themen 6
xehpuk Polymorphie Polymorphie in Parametern Java Basics - Anfänger-Themen 5
S Polymorphie und Vererbung Java Basics - Anfänger-Themen 6
H Kleines Problem mit der Polymorphie Java Basics - Anfänger-Themen 2
A OOP Polymorphie Java Basics - Anfänger-Themen 6
2 Interfaces, Polymorphie und Methoden. Java Basics - Anfänger-Themen 14
C OOP Frage zu Polymorphie Java Basics - Anfänger-Themen 4
P Eine Frage begzl. Interface / Polymorphie Java Basics - Anfänger-Themen 11
Y Kleine Verständnisfrage zum Thema dynamische Polymorphie Java Basics - Anfänger-Themen 3
F Verständnisfrage Objekt instanzierung / Polymorphie Java Basics - Anfänger-Themen 10
T Polymorphie:Überschreiben der Methode klappt nicht Java Basics - Anfänger-Themen 4
T Vererbung und Polymorphie Java Basics - Anfänger-Themen 7
C Unterschied zwischen Polymorphie und Typcasting Java Basics - Anfänger-Themen 10
S Polymorphie Verständnisproblem Java Basics - Anfänger-Themen 4
Z Vererbung oder Polymorphie? Java Basics - Anfänger-Themen 5
J Polymorphie Java Basics - Anfänger-Themen 6
G Polymorphie und Interface Java Basics - Anfänger-Themen 2
S Polymorphie und Vererbung Java Basics - Anfänger-Themen 25
S Polymorphie - oder auch spanisches Dorf? Java Basics - Anfänger-Themen 5
Say 2-DIM Array Code lesen und verstehen Java Basics - Anfänger-Themen 5
B Deadlock verstehen der Ausgabe! Java Basics - Anfänger-Themen 12
jamboy7 Java-API kennenlernen, verstehen und nutzen lernen Java Basics - Anfänger-Themen 4
B Methodendeklaration verstehen Java Basics - Anfänger-Themen 2
J Methode verstehen Java Basics - Anfänger-Themen 3
S Allgemeine Java Codes lesen und verstehen Java Basics - Anfänger-Themen 7
3 OOP erste Versuche, OOP zu verstehen. Probleme mit gettern und settern Java Basics - Anfänger-Themen 4
J Hilfe beim verstehen Java Basics - Anfänger-Themen 3
S Anweisungen verstehen System.out.print/println Java Basics - Anfänger-Themen 2
B Webhooks verstehen - Beispiel? Java Basics - Anfänger-Themen 25
H Variable.methode aufstellen, verstehen Java Basics - Anfänger-Themen 2
B Interpreter-Fehler Code verstehen und Compilerfehler Java Basics - Anfänger-Themen 2
O Programm verstehen :D Java Basics - Anfänger-Themen 4
O Umgang mit Vererbung verstehen Java Basics - Anfänger-Themen 4
B Rekursion verstehen Java Basics - Anfänger-Themen 4
D Erste Schritte Code verstehen - HashSet Java Basics - Anfänger-Themen 8
E Rekursion verstehen. Java Basics - Anfänger-Themen 4
E Rekursion verstehen Java Basics - Anfänger-Themen 2
L Quicksort verstehen Java Basics - Anfänger-Themen 3
J Texte für Java Programmierung besser verstehen? Java Basics - Anfänger-Themen 2
S Programmcode verstehen Java Basics - Anfänger-Themen 4
M Lambda - Ausdrücke verstehen Java Basics - Anfänger-Themen 2
J-Gallus Keylistener verstehen Java Basics - Anfänger-Themen 17
TomatenBrot447 Abhängigkeitsgraph verstehen? Java Basics - Anfänger-Themen 14
O Java und JSF besser verstehen Java Basics - Anfänger-Themen 1
E Erste Schritte brauche hilfe zum verstehen einer Klasse(Tiefensuche) Java Basics - Anfänger-Themen 17
U Code anderer Programmierern verstehen Java Basics - Anfänger-Themen 2
G Quellcode verstehen Java Basics - Anfänger-Themen 9
V Parameter in synchronized-Blöcken verstehen Java Basics - Anfänger-Themen 2
N Initialisierer / statischer Initialisierer verstehen Java Basics - Anfänger-Themen 6
S Wie ist folgender Kommentar in meinem Ant file zu verstehen..? Java Basics - Anfänger-Themen 0
D Quellcode verstehen Java Basics - Anfänger-Themen 4
V Parameterübergabe von Methoden verstehen Java Basics - Anfänger-Themen 13
C Schleifen verstehen Java Basics - Anfänger-Themen 5
G Hausaufgabe mit LinkedList und LinkedListStack verstehen Java Basics - Anfänger-Themen 6
R Programm verstehen, Funktion Java Basics - Anfänger-Themen 4
C Erste Schritte Konstruktoren verstehen Java Basics - Anfänger-Themen 7
T For schleife verstehen Java Basics - Anfänger-Themen 26
W InertionSort verstehen Java Basics - Anfänger-Themen 4
K Passage im Quelltext verstehen Java Basics - Anfänger-Themen 2
S Programmfragmente verstehen? Java Basics - Anfänger-Themen 4
S OOP Java Kommentare, Programm besser verstehen Java Basics - Anfänger-Themen 6
F Typenumwandlung byte <=> int verstehen Java Basics - Anfänger-Themen 3
P hilfe...nix verstehen....... Java Basics - Anfänger-Themen 2
K OPP am besten verstehen !!! Java Basics - Anfänger-Themen 7
M Brauche Hilfe beim Verstehen vom Quellcode Java Basics - Anfänger-Themen 4
M Was kann man unter implementieren so verstehen? Java Basics - Anfänger-Themen 11
S Problem beim Verstehen des Quellcodes Java Basics - Anfänger-Themen 7
B Kann Quellcode von "Hanoi" nicht verstehen. Bitte Java Basics - Anfänger-Themen 4
Z Problem Fehlermeldung zu verstehen Java Basics - Anfänger-Themen 7
A wie lernt man am besten den code zu verstehen? Java Basics - Anfänger-Themen 7
G Möchte Java verstehen Java Basics - Anfänger-Themen 11
K Verzeichniss Struktur verstehen Java Basics - Anfänger-Themen 3
M Java verstehen ! Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben