[ Foro de Java ]
package polimorfismo1;
public class Persona {
protected int antiguedad;
public Persona(int antiguedad) {
this.antiguedad=antiguedad;
}
public void saberTrienios() {
System.out.println("Trienios: "+antiguedad/3);
}
}
package polimorfismo1;
public class Hombre extends Persona {
public Hombre(int antiguedad) {
super(antiguedad);
}
}
package polimorfismo1;
public class Mujer extends Persona {
public Mujer(int antiguedad) {
super(antiguedad);
}
}
package polimorfismo1;
public class Gestion {
public void visualizar(Persona p) {
p.saberTrienios();
}
}
package polimorfismo1;
public class Principal {
public Principal() {
Gestion obj=new Gestion();
Hombre pepe=new Hombre(13);
Mujer juana=new Mujer(16);
obj.visualizar(pepe);
obj.visualizar(juana);
}
public static void main(String[] args) {
Principal interfaz=new Principal();
}
}
¿Se considera que en el método visualizar(Persona p) de la clase Gestion, se está aplicando polimorfismo aunque el método saberTrienios() al que invoca, sea un método heredado en las subclases en lugar de estar redefinido?
¿Es una condición indispensable para aplicar polimorfismo que los métodos estén redefinidos en las subclases o pueden ser heredados simplemente?
Muchas gracias
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)