Vertiefung der Programmierung

Type-Casting
Wiederholung: Vererbung
<<abstract>>
Form
Kreis
Rechteck
Quadrat
live
đź§Ş Experimente zu Vererbung
Live
coding
Type-Casting
<<abstract>>
Form
Kreis
Rechteck
Quadrat
Upcasting
Downcasting
Upcasting: geht immer âž” implizit
Downcasting: eingeschränkt möglich ➔ nur explizit
↓ Downcasting
<<abstract>>
Form
Kreis
Rechteck
Quadrat
Downcasting
Form f = new Quadrat();
Quadrat q = (Quadrat) f;
Wir mĂĽssen wissen,
dass (Referenz) f aktuell auf ein Quadrat zeigt
explizites Casting
↑ Upcasting
<<abstract>>
Form
Kreis
Rechteck
Quadrat
Upcasting
Form f = new Quadrat();
Rechteck r = new Quadrat();
implizites Upcasting
⌨️ Type-Casting (Beispiele)
Live
coding
Definition: instanceof
variablenName instanceof Klassenname
instanceof fungiert hier als Operator
âž” Ergebnis: boolean (wahr/falsch)
instanceof-Operator (Beispiele)
Beim Downcasting sollte immer ĂĽberprĂĽft werden,
auf welches Objekt eine Referenz zeigt.
❌
Form form = new Rechteck();
println(((Kreis) form).getRadius());
Form form = new Kreis();
println(((Kreis) form).getRadius());
⚠️
Form form = new Kreis();
if (form instanceof Kreis) {
println(((Kreis) form).getRadius());
}
âś…
Form form = new Rechteck();
if (form instanceof Kreis) {
println(((Kreis) form).getRadius());
}
âś…
⌨️ instanceof-Operator (Beispiele)
Live
coding
Zusammenfassung
-
Type-Casting ermöglicht Konvertieren von
Objekten entlang der Vererbungshierarchie -
↑Upcasting (von unten nach oben) geht immer
-
↓Downcasting (von oben nach unten) geht nur explizit:
-
A a = (A) b;// b muss vom Typ A sein, sonst ❌
-
-
​Type-Casting wird erst zur Laufzeit durchgeführt
-
​konkrete Typen unbedingt zur Laufzeit prüfen
→ instanceof-Operator
-

Type Casting
By blackbill
Type Casting
- 100