Con los objetos podemos hacer algo similar podemos cambiar el tipo de un objeto por otro siempre y cuando esté dentro de la estructura jerárquica en su herencia.
Ejemplo Sencillo
Para hacer el casting podemos realizarlo de forma implícita, es decir, con una asignación ya Java sabe que debe cambiar el tipo del objeto, para ello podemos hacer lo siguiente:
Si nos fijamos en la imagen, hemos declarado un objeto de la clase Objeto y luego decimos que era una instancia de Estudiante, a pesar que ya el objeto era de un tipo hemos forzado el casting y se convirtió en otro tipo con una simple asignación, esto es así porque la clase Estudiante hereda de la clase Objeto.
Ahora si realizamos el caso contrario y un objeto de la clase Estudiante lo cambiamos a tipo Objeto que sucedería:
En este caso tendríamos un error de compilación de nuestro programa, esto se debe a la jerarquía de la herencia, como un objeto de Estudiante siempre será del tipo Objeto no hay problema, pero un Objeto no siempre será Estudiante por tener un orden jerárquico superior, por ello debemos tener cuidado cuando establecemos el casting de los tipos de objeto.
Ahora si queremos hacer un tipo de casting explicito, podemos hacer este tipo de acciones como pasar de un orden superior a uno inferior, veamos el siguiente caso:
En este ejemplo le estamos indicando directamente al compilador que debe transformar al objeto o del tipo Objeto al tipo Estudiante, con ello hacemos una conversión similar a la que utilizamos con los tipos de variable primitivos.
Por ejemplo:
Objeto miObjeto = new Circulo(); if ( miObjeto instanceof Circulo) { System.out.println("El diámetro del circulo es: " +( (Circulo)miObjeto).getDiametro()); }
Aquí vemos entonces como hacemos primero un casting implícito, hemos declarado un objeto de la clase Objeto y luego le dimos un tipo Circulo, luego preguntamos que en nuestro condicional if() si el objeto es una instancia de Circulo, de ser positiva la respuesta pasamos al bloque interno, ahí hacemos nuevamente un casting esta vez explicito e invocamos un método de la clase.
Como vemos realizar este procedimiento no es nada complejo, solo que debemos tener en claro cómo funciona Java y la estructura de jerarquía que llevan las clases y sus instancias. Con esto finalizamos este tutorial ya podemos hacer casting de objetos y también podemos saber de qué clase son instancia los mismos.