Eine Referenzvariable kann abgeleitetes Objekt referenzieren
- Vehicle → Car oder Truck
- Human → Baby, Child oder Adult
- Smartphone → Samsung Galaxy, Apple iPhone
Limitationen der Polymorphie
- Unterklasse muss Oberklasse erweitern
- nur public der Oberklasse verwendbar
Demo Polymorphie
- Oberklassenmethode makeSound
- ArrayList mit Dog und Cat
Upcast
Der Referenzvariable einer Oberklasse wird eine Referenzvariable einer Unterklasse zugewiesen.
Beispiel Upcast
Animal bello = new Dog();
Animal merlin = new Cat();
Downcast
Die Referenzvariable einer Oberklasse wird in eine Referenzvariable einer Unterklasse umgewandelt.
Beispiel Downcast
Animal bello = new Dog();
Dog bello2 = (Dog) bello;
instanceof Operator
- prüft, ob eine Referenzvariable eine Instanz einer bestimmten Klasse ist.
Beispiel instanceof
Animal bello = new Dog();
if (bello instanceof Dog) {
// dog specific coding
}
Demo
- Dog und Cat spezifische Methoden
- instanceof mit Downcast in ArrayList