7
การคัดเลือกอย่างชัดเจนจากคลาสซูเปอร์ไปเป็นคลาสย่อย
public class Animal { public void eat() {} } public class Dog extends Animal { public void eat() {} public void main(String[] args) { Animal animal = new Animal(); Dog dog = (Dog) animal; } } ได้รับมอบหมายDog dog = (Dog) animal;ไม่ได้สร้างรวบรวมข้อผิดพลาด ClassCastExceptionแต่ที่รันไทม์มันสร้าง ทำไมคอมไพเลอร์ตรวจไม่พบข้อผิดพลาดนี้?