Ejemplo de polimorfismo
Hola amigos del foro, soy nuevo por acá y necesito si alguien me puede dar una mano con un ejemplo completo de polimorfismo, es decir necesito rendir java y me piden la definición de polimorfismo y un ejemplo completo para definirlo, el que aparece del perro y el gato le falta algo si alguien me puede decir que se lo agradeceré.
Muchas Gracias
Muchas Gracias
Un buen ejemplo de polimorfismo sería:
Cantar:
- Los pájaros cantan. (pajaros.cantar();)
- Una chica canta una canción. (chica.cantar();)
- Los pies te cantan. (pies.cantar();)
Si te fijas, todos ellos tienen el "método" cantar, pero sin embargo, cada uno de ellos hace su propia función, su propia actividad. Cantar una canción no es lo mismo que te canten los pies.
A ver si así se te aclara un poco.
Cantar:
- Los pájaros cantan. (pajaros.cantar();)
- Una chica canta una canción. (chica.cantar();)
- Los pies te cantan. (pies.cantar();)
Si te fijas, todos ellos tienen el "método" cantar, pero sin embargo, cada uno de ellos hace su propia función, su propia actividad. Cantar una canción no es lo mismo que te canten los pies.
A ver si así se te aclara un poco.
/**
*
* ESTA CLASE ES ABSTRACTA, LO QUE QUIERE DECIR QUE TODAS SUS CALSES HIJAS VAN A TENER TODOS SUS METODOS
* PERO IMPLEMENTADOS DE DIFERENTE MANERA
*
* EN ESTA CLASE TAMBIEN PUEDE HABER IMPLEMENTACION EN LOS METODOS Y TAMBIEN LAS VARIAVBLES QUE VAN A
* TENER EN COMUN SUS CLASES HIJAS
*/
public abstract class Personaje {
private String nombre;
/**
* CONSTRUCTOR DEFAULT
*/
public Personaje() {
}
/**
* CONSTRUCTOR NO DEFAULT
*/
public Personaje(String nombre) {
this.nombre = nombre;
}
/**
* ESTA ES LA FORMA DE COMO SE DECLLARA UN METODO ABSTRACTO, LA IMPLEMENATACION VA EN LAS CLASES HIHAS
*/
public abstract void cantar();
/**
* LAS CLASES HIJAS TIENEN ACCESO A ESTOS METODOS YA QUE LA CLASE PERSONAJE ES LA CLASE PADRE
*/
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
}
********************************************************************************
/**
* ESTA CLASE EXTIENDE DE PERSONAJE HERENDANDO TODOS SUS METODOS Y ATRIBUTOS
*/
public class Pies extends Personaje {
/**
* CONSTRUCTOR DEFAULT
*/
public Pies() {
}
/**
* CONSTRUCTOR DEFAULT
*/
public Pies(String nombre) {
super(nombre);
}
/**
* METODO CATAR DE LA CLASE PADRE (PERSONAJE). AUIQ ESTA IMPLEMENTADO SEGUN PIES
*/
public void cantar() {
System.out.println("Los pies estan cantando");
}
}
******************************************************************************
/**
* ESTA CLASE EXTIENDE DE PERSONAJE HERENDANDO TODOS SUS METODOS Y ATRIBUTOS
*/
public class Pajaro extends Personaje {
/**
* CONSTRUCTOR DEFAULT
*/
public Pajaro() {
}
/**
* CONSTRUCTOR NO DEFAULT
*/
public Pajaro(String nombre) {
super(nombre);
}
/**
* METODO CATAR DE LA CLASE PADRE (PERSONAJE). AUIQ ESTA IMPLEMENTADO SEGUN PAJARO
*/
public void cantar() {
System.out.println("El pajaro esta cantando");
}
}
******************************************************************************
/**
* ESTA CLASE EXTIENDE DE PERSONAJE HERENDANDO TODOS SUS METODOS Y ATRIBUTOS
*/
public class Chica extends Personaje{
/**
* CONSTRUCTOR DEFAULT
*/
public Chica() {
}
/**
* CONSTRUCTOR NO DEFAULT
*/
public Chica(String nombre) {
super(nombre);
}
/**
* METODO CATAR DE LA CLASE PADRE (PERSONAJE). AUIQ ESTA IMPLEMENTADO SEGUN CHIHCA
*/
public void cantar() {
System.out.println("La chica esta bailando");
}
}
*****************************************************************************
public class MovimientosPersonajes {
public MovimientosPersonajes() {
}
public static void main(String[] args) {
Personaje pa = new Pajaro();
pa.cantar();
Personaje pi = new Pies();
pi.cantar();
Personaje ch = new Chica("Marta");
ch.cantar();
System.out.println("el nombre de la chica es " + ch.getNombre());
}
}
///////////////////////////////////////////////////////
ESPERO QUE ESTO AYUDE
//////////////////////////////////////////////////////
*
* ESTA CLASE ES ABSTRACTA, LO QUE QUIERE DECIR QUE TODAS SUS CALSES HIJAS VAN A TENER TODOS SUS METODOS
* PERO IMPLEMENTADOS DE DIFERENTE MANERA
*
* EN ESTA CLASE TAMBIEN PUEDE HABER IMPLEMENTACION EN LOS METODOS Y TAMBIEN LAS VARIAVBLES QUE VAN A
* TENER EN COMUN SUS CLASES HIJAS
*/
public abstract class Personaje {
private String nombre;
/**
* CONSTRUCTOR DEFAULT
*/
public Personaje() {
}
/**
* CONSTRUCTOR NO DEFAULT
*/
public Personaje(String nombre) {
this.nombre = nombre;
}
/**
* ESTA ES LA FORMA DE COMO SE DECLLARA UN METODO ABSTRACTO, LA IMPLEMENATACION VA EN LAS CLASES HIHAS
*/
public abstract void cantar();
/**
* LAS CLASES HIJAS TIENEN ACCESO A ESTOS METODOS YA QUE LA CLASE PERSONAJE ES LA CLASE PADRE
*/
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
}
********************************************************************************
/**
* ESTA CLASE EXTIENDE DE PERSONAJE HERENDANDO TODOS SUS METODOS Y ATRIBUTOS
*/
public class Pies extends Personaje {
/**
* CONSTRUCTOR DEFAULT
*/
public Pies() {
}
/**
* CONSTRUCTOR DEFAULT
*/
public Pies(String nombre) {
super(nombre);
}
/**
* METODO CATAR DE LA CLASE PADRE (PERSONAJE). AUIQ ESTA IMPLEMENTADO SEGUN PIES
*/
public void cantar() {
System.out.println("Los pies estan cantando");
}
}
******************************************************************************
/**
* ESTA CLASE EXTIENDE DE PERSONAJE HERENDANDO TODOS SUS METODOS Y ATRIBUTOS
*/
public class Pajaro extends Personaje {
/**
* CONSTRUCTOR DEFAULT
*/
public Pajaro() {
}
/**
* CONSTRUCTOR NO DEFAULT
*/
public Pajaro(String nombre) {
super(nombre);
}
/**
* METODO CATAR DE LA CLASE PADRE (PERSONAJE). AUIQ ESTA IMPLEMENTADO SEGUN PAJARO
*/
public void cantar() {
System.out.println("El pajaro esta cantando");
}
}
******************************************************************************
/**
* ESTA CLASE EXTIENDE DE PERSONAJE HERENDANDO TODOS SUS METODOS Y ATRIBUTOS
*/
public class Chica extends Personaje{
/**
* CONSTRUCTOR DEFAULT
*/
public Chica() {
}
/**
* CONSTRUCTOR NO DEFAULT
*/
public Chica(String nombre) {
super(nombre);
}
/**
* METODO CATAR DE LA CLASE PADRE (PERSONAJE). AUIQ ESTA IMPLEMENTADO SEGUN CHIHCA
*/
public void cantar() {
System.out.println("La chica esta bailando");
}
}
*****************************************************************************
public class MovimientosPersonajes {
public MovimientosPersonajes() {
}
public static void main(String[] args) {
Personaje pa = new Pajaro();
pa.cantar();
Personaje pi = new Pies();
pi.cantar();
Personaje ch = new Chica("Marta");
ch.cantar();
System.out.println("el nombre de la chica es " + ch.getNombre());
}
}
///////////////////////////////////////////////////////
ESPERO QUE ESTO AYUDE
//////////////////////////////////////////////////////