Hallo, ich verstehe nicht was der Unterschied zwischen Polymorphie mit verschiedenen Sichten auf das Objekt und dem Casting von Objekten ist. Beispiel:
Hier ein skizziertes Beispiel indem es die Superklasse Mitarbeiter gibt von der die Klasse Fuehrungsperson erbt.
So, und nun habe ich folgenden Code:
Was bringt mir nun das Casting im Gegensatz zu einer normalen Deklaration bzw wo ist der Unterschied zwischen den Sichtweisen und einem expliziten Cast?
Hoffe, dass war irgendwie verständlich ...
Hier ein skizziertes Beispiel indem es die Superklasse Mitarbeiter gibt von der die Klasse Fuehrungsperson erbt.
Code:
public class Mitarbeiter {
private String Name;
private int Alter;
public String getName() {
....
}
public int getAlter() {
....
}
}
Code:
public class Fuehrungsperson extends Mitarbeiter {
private String Dienstwagen;
public String getDienstwagen() {
....
}
}
So, und nun habe ich folgenden Code:
Code:
Fuehrungsperson f1 = new Fuehrungsperson();
Mitarbeiter m1 = null;
m1 = f1;
m1.getDienstwagen // geht natürlich nicht, weil wir f1 nun als Mitarbeiter betrachten!
f1 = (Fuehrungsperson) f1; // f1 ist nun wieder Führunskraft
//Alternativ hätte ich nun aber auch machen können
Fuehrungsperson f2 = f1; //f1 ist nun ebenfalls wieder Führungskraft und getDienstwagen funktioniert wieder
Was bringt mir nun das Casting im Gegensatz zu einer normalen Deklaration bzw wo ist der Unterschied zwischen den Sichtweisen und einem expliziten Cast?
Hoffe, dass war irgendwie verständlich ...