Ver Mensaje Individual
  #4 (permalink)  
Antiguo 12/11/2013, 14:00
Avatar de chuidiang
chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: duda asignacion objeto variable java

Hola:

En java hay que declarar las variables, decir de qué tipo son. Así que tienes forzosamente que poner al menos algo como

Profesor profesor73;

A partir de ahí, puedes asignar la variable y hacer lo que quieras sin necesidad de decir su tipo (volver a declararla). Podrías, por ejemplo

profesor73 = new ProfesorInterino();

o

profesor73 = interno1;

Si en el momento de declarar la variable ya sabes qué le vas a asignar, es habitual asignarle el valor en la misma declaración, por eso muchas veces se usan cosas como

Profesor profesor73 = interino1;

o

Profesor profesor73 = new ProfesorInterino();

En java hay herencia, hay clases hijas que heredan de sus clases padre. Siempre puedes asignar clases hija a variables del tipo de la clase padre, así

Padre padre = hija;
Padre padre = new Hija();

el "problema" con esto, es que aunque el objeto que tienes en memoria es en realidad es de tipo Hija, sólo puedes acceder a aquellas cosas que se han declarado en el tipo de variable Padre. Esto es correcto

padre.metodoDelcaradoEnPadre();

pero esto no

padre.metodoDeclaradoEnHija();

Cuando tienes una clase Hija guardada dentro de una variable de tipo Padre, puedes obtener el objeto original (Hija), haciendo un "cast", que basicamente es poner entre parentesis el tipo real dealente de la variable

Hija hija = (Hija)padre;

De esta forma, ya sí podrías llamar a los métodos de Hija. No es necesario hacer la asignación a una variable, puedes hacerlo todo de golpe, así

((Hija)padre).metodoDeHija();

Se bueno.
__________________
Apuntes Java
Wiki de Programación