Zitat von
Antigo:
Hier ists ja das gleiche Prinzip. Ich Caste in die Oberklasse und rufe die Methode auf.
Im zweiten Beispiel wird nichts in die Oberklasse gecastet. Casten wäre an den Klammern erkennbar, z.B.:
Ober o = (Ober) u;
Im Code steht aber
Ober o = u;
damit wird u einfach nur einer kompatiblen Variablen eines Vorfahrtyps zugewiesen, d.h. man kann für "o" nur auf die in der Klasse "Ober" definierten Methoden und Properties zugreifen (die aber in der konkreten Instanz überschrieben sein können).
Cheers,