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

duda herencia java metodos del hijo

Estas en el tema de duda herencia java metodos del hijo en el foro de Java en Foros del Web. Hola miren tengo una consulta, tengo un mini proyecto de java;y en cual tengo una duda.... miren esta es la clase padre... @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código ...
  #1 (permalink)  
Antiguo 23/05/2014, 07:20
 
Fecha de Ingreso: febrero-2013
Ubicación: en mi casa
Mensajes: 541
Antigüedad: 11 años, 9 meses
Puntos: 3
duda herencia java metodos del hijo

Hola miren tengo una consulta, tengo un mini proyecto de java;y en cual tengo una duda....

miren esta es la clase padre...

Código Java:
Ver original
  1. public class padre {
  2.    
  3.     private String nombre="";
  4.    
  5.     public void  hablar(){
  6.        
  7.         System.out.println("ejecutada funciona hablar heredada del padre");
  8.     }
  9.  
  10.     public String MostrarNombre(){
  11.        
  12.         return nombre;
  13.     }
  14.  
  15. }

y esta es la clase hija, que extiende la clase padre...

Código Java:
Ver original
  1. public class hijo extends padre{
  2.    
  3.    
  4.     public void habla_hijo(){
  5.        
  6.         System.out.println("Ejecutada accion de hablar");
  7.     }
  8.    
  9.     public static void main(String[] args){
  10.        
  11.         padre hijo2=new hijo();
  12.     //  hijo2.habla_hijo();
  13.         hijo2.hablar();
  14.        
  15.        
  16.     }
  17.  
  18. }

el tema es que tengo una clase hija que extiende la clase padre, pero cuando DEFINO en el MAIN del hijo.
indico que voy a crear un objeto del TIPO padre.
por el cual pareciera que queda anulada la posibilidad de llamar a los metodos del hijo como "habla hijo" ya que me tira un error, este es el error:

Código Java:
Ver original
  1. Exception in thread "main" java.lang.Error: Unresolved compilation problem:
  2.     The method habla_hijo() is undefined for the type padre
  3.  
  4.     at hijo.main(hijo.java:13)
  #2 (permalink)  
Antiguo 23/05/2014, 07:32
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 2 meses
Puntos: 454
Respuesta: duda herencia java metodos del hijo

Hola:

Efectivamente es así, puedes guardar una clase hija en una variable de tipo padre y una vez hecho esto, no puedes llamar directamente a los métodos de la clase hija. Pero para eso tienes el "cast" que te permite recuperar la clase hija, así

( (hijo)hijo2 ).habla_hijo();

es decir, tienes que poner delante de la variable y entre paréntesis el tipo real que contiene (hijo). Esto no sirve para convertir cualquier cosa en cualquier otra, te dará error en tiempo de ejecución si hijo2 no contiene un hijo. Para prevenir errores, puedes hacer una comprobación antes

Código Java:
Ver original
  1. if (hijo2 instanceof hijo) {
  2.    ( (hijo)hijo2 ).habla_hijo();
  3. }

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: clase, herencia, hijo, metodo, metodos, objeto, 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 12:58.