อนุญาตให้ใช้การส่งผ่านข้อมูลได้ใน Java แต่การดาวน์สตรีมจะทำให้เกิดข้อผิดพลาดในการคอมไพล์
ข้อผิดพลาดในการคอมไพล์สามารถลบออกได้โดยการเพิ่ม cast แต่จะหยุดพักที่รันไทม์
ในกรณีนี้เหตุใดจาวาอนุญาตให้ดาวน์สตรีมหากไม่สามารถรันที่รันไทม์ได้
มีการใช้งานจริงสำหรับแนวคิดนี้หรือไม่?
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");
}
}