L'upcasting est autorisé en Java, mais le downcasting donne une erreur de compilation.
L'erreur de compilation peut être supprimée en ajoutant une distribution mais serait de toute façon interrompue au moment de l'exécution.
Dans ce cas, pourquoi Java autorise le downcasting s'il ne peut pas être exécuté à l'exécution?
Y a-t-il une utilisation pratique de ce concept?
public class demo {
public static void main(String a[]) {
B b = (B) new A(); // compiles with the cast,
// but runtime exception - java.lang.ClassCastException
}
}
class A {
public void draw() {
System.out.println("1");
}
public void draw1() {
System.out.println("2");
}
}
class B extends A {
public void draw() {
System.out.println("3");
}
public void draw2() {
System.out.println("4");
}
}