Foros del Web » Programación para mayores de 30 ;) » Java »

Herencia - Instanciaciones

Estas en el tema de Herencia - Instanciaciones en el foro de Java en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 21/10/2015, 14:40
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 366
Antigüedad: 9 años, 5 meses
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
  #2 (permalink)  
Antiguo 21/10/2015, 14:49
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 13 años, 8 meses
Puntos: 606
Respuesta: Herencia - Instanciaciones

Revisa el tema de las clase abstractas porque es por ahí por donde van los tiros. El ejemplo típico es el de tener una clase abstracta base como "Vehiculo" y clases que la extiendan como por ejemplo "Coche", "moto", "avion", etc.
__________________
Aviso: No se resuelven dudas por MP!
  #3 (permalink)  
Antiguo 21/10/2015, 17:26
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 12 años, 4 meses
Puntos: 306
Respuesta: Herencia - Instanciaciones

Esto es instanciar

new Clase2();

y esto asignar/referenciar

Clase_1 miObjeto = new Clase2();

siendo más específicos es polimorfismo

La herencia y el polimorfismo quizá sean las características más potentes de la POO, por lo que no hay una razón para usarlos sino que es imprescindible para programar según los criterios POO.

Más que pensar en qué casos la deberías usar usar, deberías pensar en qué implica el usarla, porque la herencia te la pide la naturaleza del objeto y el polimorfismo los patrones o la lógica de negocio.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.

Etiquetas: clase, herencia, metodo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:15.