Java_polimorfismo_casting

Buenos días
Estoy intentando aprender a programar en Java, ya que tengo un examen en pocos días, y tengo una duda.
No sé muy bien como se utiliza el casting en la herencia, es decir la teoría que yo tengo la leo y la requeteleo pero no saco nada en claro y no encuentro nada práctico con lo que entenderlo ya que el ejemplo que yo tengo me da confusión, puesto que no entiendo la direferencia entre eso y 'super'.
Y con el instanceof entiendo un poco más pero a la hora de ponerlo en práctica me pasa igual.
Si alguien pudiera explicármelo lo agradecería...
Muchas gracias

1 respuesta

Respuesta
1
Tratare de explicarlo de forma fácil, el casting se refiere básicamente a la habilidad de "decirle" al compilador que una clase es de cierto tipo cuando parece que no lo es. Un ejemplo, supongamos que tienes una clase llamada "Animal" y creas otra clase llamada "Perro" que hereda la clase "Animal". Tu puedes crear una instancia de esta forma:
Animal instanciaPerro = new Perro();
Si tu creas una clase así aun cuando la hayas creado del tipo "Perro" como tu declaración de la instancia es de tipo "Animal" no tendrás acceso a los métodos o variables de "Perro", por lo que tienes que hacer un casting para decirle al compilador que en realidad esa instancia es de tipo "Perro".
Perro nuevoPerro = (Perro)instanciaPerro;
Esto es el casting.
El instanceOf se usa para saber si una clase es de un cierto tipo o heredada de un cierto tipo, veelo como si fuera el == pero para clases. Siguiendo con el ejemplo anterior si haces esto:
if(instanciaPerro instanceOf Anima) o nuevoPerro instanceOf Perro
ambas te daran un "True" puesto que instanciaPerro es de tipo Animal y nuevoPerro de tipo "Perro", esto seria igual a decir
if(instanciaPerro == Animal)
pero claro esto es daria un error ya que el "==" no se puede usar para comapra tipos de clases.
Espero que te sirva, cualquier duda estoy a tus ordenes
Muchísimas gracias!
joe muy bien, muchísimas gracias, pues mira si te parece bien, no voy a cerrar esta conversación hasta el martes que es cuando tengo examen por si me sale alguna pregunta así preguntarte directamente a ti, si te parece bien, sino me apuntare tu nombre, aunque es mejor para ti tener más preguntas así serán más puntos...
Vale pues la cierro y abro más :)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas