Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/10/2015, 14:40
Kritik
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 366
Antigüedad: 12 años
Puntos: 31
Herencia - Instanciaciones

He estado últimamente echando un ojo a la herencia, que ya sabía como funcionaba pero no en todos sus pelos y detalles.

E hilando con este tipo de instanciación:

Clase_1 miObjeto = new Clase2();

que ya había visto en alguna ocasión pero que no llegaba mucho a comprender como era posible eso, llegué a la conclusión de que el responsable de esa instanciación era la herencia, la cual permite hacer:

Clase_Padre miObjeto= new Clase_Hija();

(Estos son deducciones aún no probadas en ningún código. Si me equivoco por favor, explicarme entonces como puede si no haber instanciaciones de ese tipo)

Pero ahora que he llegado a esta conclusión, la pregunta que me surge es:

En qué tipo de ejemplo podría venir bien usar este tipo de instanciación?

¿Quizá en la reutilización de un objeto?

Quizá para casos como el siguiente?

Clase_Abuelo miUnicoObjeto=new Clase_nieta();
miUnicoObjeto.metodo_del_nieto();
miUnicoObjeto=new Clase_Padre();
miUnicoObjeto.metodo_private_del_padre();
miUnicoObjeto=new Clase_Abuelo();
miUnicoObjeto.metodo_private_del_abuelo();

¿Quizá por los métodos private? Porque para los métodos publicos, la clase nieta puede acceder a todos.

Sigo divagando sobre las posibilidades de poder hacer esto. Y ya que el padre no puede acceder a los atributos y métodos del hijo... quizá haciendo este tipo de instanciación si pueda, y una vez que saque los datos, se instancie en su propia clase. Porque si no va a instanciarse luego con el constructor del padre... ¿por qué no se declaró desde el principio como hijo?

Estoy bastante despistado con respecto a esta forma de instanciar que he visto en algunas ocasiones. Por qué se usa así, y en qué caso sería lo más aconsejable.

Última edición por Kritik; 21/10/2015 a las 14:47