Upcasting diperbolehkan di Java, namun downcasting memberikan kesalahan kompilasi.
Kesalahan kompilasi dapat dihapus dengan menambahkan gips tetapi tetap akan rusak saat runtime.
Dalam hal ini mengapa Java memungkinkan downcasting jika tidak dapat dijalankan pada saat runtime?
Apakah ada kegunaan praktis untuk konsep ini?
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");
}
}