PG 2.7 Polymorphie Flashcards

1
Q

Upcasting

A

-Wenn man Ober- und Unterklassen hat kann man
-Eine Refernz die normalerweise ein Objekt der Unterklasse ist auch ohne Probleme auf ein Objekt der Oberklasse zuweisen
-Unterklassen Referenzen sind immer kompatibel zu ihrer Oberklasse

class Pkw { }
class Coupé extends Pkw { }
class Test {
public static void main(String[] args) {
Pkw p = new Pkw ();
Coupé c = new Coupé();
p = c; // Upcast
}
}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Warum funktioniert Upcasting?

A
  • weil im Unterklassenobjekt das Oberklassenobjekt immer vollständig enthalten ist
  • Es kommt höchstens zum Verlust von Attributen und Methoden, aber nicht zum Hinzufügen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

frühes vs spätes Binden

A

In C werden aufzurufenden Funktionen vom Compiler bestimmt (frühes Binden)
In Java werden aufzurufenden Methoden zur Laufzeit bestimmt (spätes Binden)
=> überschriebene Methode Entscheidung zur Laufzeit anhand des referenzierten Objekts , ob die Unter- oder Oberklassenmethode gemeint ist

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Polymorphie und abstrakte Klassen

A

abstrakte Methoden gut geeignet für Polymorphie , weil unterschiedliche Implementierungen erst zur Laufzeit bestimmt ausgewählt wird.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Downcasting

A

Man kann eine Oberklasse nur schlecht in eine Unterklasse verwandeln , höchstens mit expliziter Typkonversion (casts) und auch dann entstehen evtl. Laufzeitfehler

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Der Operator instanceof

A

testet of das objekt auf der linken seite vom typ auf der rechten seite angegeben ist, entspricht => schlechter Coding style

How well did you know this?
1
Not at all
2
3
4
5
Perfectly