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

Duda herencias en java

Estas en el tema de Duda herencias en java en el foro de Java en Foros del Web. Buenos días foreros! Tengo una duda en el tema de las herencias con el siguiente código. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Java: Ver original package transporte ; ...
  #1 (permalink)  
Antiguo 05/06/2013, 03:28
 
Fecha de Ingreso: septiembre-2007
Mensajes: 152
Antigüedad: 16 años, 7 meses
Puntos: 1
Duda herencias en java

Buenos días foreros!

Tengo una duda en el tema de las herencias con el siguiente código.

Código Java:
Ver original
  1. package transporte;
  2. public class Vehiculo {
  3.     public void borrarObjeto()
  4.     {
  5.         System.out.println("Borrando objeto...");
  6.         System.out.println("El nombre del objeto es: " + getNombreObjeto());
  7.     }
  8.     private String getNombreObjeto() {
  9.         return null;
  10.     }
  11. }


Código Java:
Ver original
  1. package transporte;
  2. public class Coche extends Vehiculo {
  3.     public static void main (String args[])
  4.     {
  5.         Coche car = new Coche();
  6.         car.go();
  7.     }
  8.     public void go()
  9.     {
  10.         System.out.println("Empezamos....");
  11.         super.borrarObjeto();
  12.     }
  13.     private String getNombreObjeto() {
  14.         return "Soy un coche";
  15.     }  
  16. }

La salida de la ejecución es:
Empezamos....
Borrando objeto...
El nombre del objeto es: null

Yo esperaba:
Empezamos....
Borrando objeto...
El nombre del objeto es: Soy un coche

En java cuando llamas desde un hijo a un método que está en el padre y ese mismo método que está en el padre llama a un método, pero que ese método esta sobrescrito en el hijo. No invoca al del hijo?

Muchas gracias, un saludo.
  #2 (permalink)  
Antiguo 05/06/2013, 05:23
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Duda herencias en java

super.borrarObjeto(); => Llamas al método borrarObjeto de la superclase

Si quisieras ejecutarlo para el hijo deberías usar this.borrarObjeto();
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #3 (permalink)  
Antiguo 05/06/2013, 05:38
 
Fecha de Ingreso: septiembre-2007
Mensajes: 152
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Duda herencias en java

Buenas Fuzzylog,

Es que esa no era la pregunta, eso si lo se.
Pero yo digo una vez se llama al metodo del padre desde un hijo este cuando llama a otro metodo que si esta definido en la clase que lo invoca que a su vez es un hijo. No invoca al del hijo?

Un saludo
  #4 (permalink)  
Antiguo 05/06/2013, 05:52
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Duda herencias en java

Debería, pero quizás el private esté interfiriendo, prueba con protected.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #5 (permalink)  
Antiguo 05/06/2013, 08:31
 
Fecha de Ingreso: marzo-2012
Ubicación: Argentina
Mensajes: 111
Antigüedad: 12 años, 1 mes
Puntos: 12
Respuesta: Duda herencias en java

Lo que se pone como privado es justamente eso privado o sea no tiene visibilidad hacia ningun lugar del universo es propio de la clase que lo declara.Se usa justamente para lo que se llama ocultamiento o encapsulamiento.

aca hay algo de info

http://es.wikipedia.org/wiki/Herenci...formaci.C3.B3n
  #6 (permalink)  
Antiguo 05/06/2013, 08:46
 
Fecha de Ingreso: septiembre-2007
Mensajes: 152
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Duda herencias en java

Buenas chuidiang y darkChild!!!!

Perfecto era tema de visibilidades :)

NOTA: El arreglo ha sido poner en el padre protected en el método y en el hijo también.

Muchas gracias a los dos, un saludo.

Etiquetas: string
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:39.