¿Alguien puede explicar lo que está pasando aquí?java casting con referencia de superclase
Supongamos Car
y Bike
son subclases de Vehicle
.
Me parece que Vehicle v
referencia se lanza a Bike
. Sé que esto es ilegal y de hecho el compilador escupe ... Car cannot be cast to Bike
.
¿Pero no debería ser Vehicle
no se puede convertir a Bike
? Después de todo, Vehicle v
es una referencia Vehicle
.
public class Test {
public static void main(String[] args) {
Vehicle v = new Car();
Bike b = (Bike) v;
// some stuff
}
}
Porque JVM sabe que es un automóvil cuando lanza la excepción. –
El compilador no divide la excepción. El código arroja un ** tiempo de ejecución ** 'ClassCastException'. –
@Mamá embarazada, acepte una respuesta si está satisfecho con alguno de ellos. – Reddy