conversión explícita de superclase a subclase
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;
}
}
La asignaciónDog dog = (Dog) animal;
no genera un error de compilación, pero en tiempo de ejecución genera unClassCastException
. ¿Por qué el compilador no puede detectar este error?