W jaki sposób rzutować obiekt klasy bazowej na klase podrzędną
public class Main {
public static void main(String[] args) {
Student st = new Student();
Uczen ucz = new Uczen();
st = (Student) ucz;
}
}
class Uczen{
String name;
}
class Student extends Uczen{
int index;
}
W tym przykładzie rzutowany jest obiekt, który ma mniej informacji na obiekt, który ma więcej informacji. Nie ma błędu kompilacji jest za to błąd wykonania.
Exception in thread "main" java.lang.ClassCastException: myPackage.Uczen
at myPackage.Main.main(Main.java:39)
W książce jest napisane, że przy takim rzutowaniu obiekt rzutowany otrzymuje metody i zmienne klasy podrzędnej. Proszę o wyjaśnie