Polimorfismo y herencia
Publicado por Alfonso (1 intervención) el 11/11/2007 13:52:29
class A{
protected String nombre;
public A(String n){
this.nombre=n;
}
public void mostrar(){
System.out.println(nombre);
}
}
class B extends A{
private int valor;
public B(String n,int v){
super(n);
this.valor=v;
}
public void mostrar(){
System.out.println(nombre+" "+valor);
}
}
Tengo el diseño de estas dos clases. B hereda de A y como se puede observar en B he definido el metodo mostrar que sobrecarga al metodo de la clase A. Mi problema es el siguiente. Como puedo hacer para que con un objeto de tipo B, al ejecutar objetoB.mostrar(); me utilice el de la clase Padre y no el suyo propio. He intentado el siguiente código pero no consigo que se ejecute solo la parte A del objeto B.
class Herencia_AB{
static public void main(String[] args){
B x =new B("pepe",1);
A h=(A)x;
h.mostrar(); //AQUI ME SIGUE UTILIZANDO EL METODO DE LA CLASE B
//CUANDO YO QUIERO QUE SOLO SALGA EL string "pepe".
}
}
protected String nombre;
public A(String n){
this.nombre=n;
}
public void mostrar(){
System.out.println(nombre);
}
}
class B extends A{
private int valor;
public B(String n,int v){
super(n);
this.valor=v;
}
public void mostrar(){
System.out.println(nombre+" "+valor);
}
}
Tengo el diseño de estas dos clases. B hereda de A y como se puede observar en B he definido el metodo mostrar que sobrecarga al metodo de la clase A. Mi problema es el siguiente. Como puedo hacer para que con un objeto de tipo B, al ejecutar objetoB.mostrar(); me utilice el de la clase Padre y no el suyo propio. He intentado el siguiente código pero no consigo que se ejecute solo la parte A del objeto B.
class Herencia_AB{
static public void main(String[] args){
B x =new B("pepe",1);
A h=(A)x;
h.mostrar(); //AQUI ME SIGUE UTILIZANDO EL METODO DE LA CLASE B
//CUANDO YO QUIERO QUE SOLO SALGA EL string "pepe".
}
}
Valora esta pregunta


0