Se dice del caso
en el que una variable de tipo B recibe el valor de una variable de tipo A.
A a = ...;;
B b = (B)a; // explícito; es necesario
Esta operación
sólo se puede hacer, si el objeto referenciado por “a” es realmente de tipo B;
es decir, sólo es posible cuando el downcasting deshace un upcasting
anterior. De lo contrario se provoca un error en tiempo de ejecución,
lanzándose una excepción de tipo ClassCastException.
factible |
ClassCastException |
A a = new B(); B b = (B)a; |
A a = new A(); B b = (B)a; |
Temas relacionados