Polimorfismo Sobrecarga y Ligadura Dinámica

1
Polimorfismo
Sobrecarga y Ligadura Dinámica
CARLOS ROBERT FALCÓN ESCOBAR
ADRIÁN TABERNERO ABAD
Introducción

El polimorfismo nos permite programar
de forma general en lugar de forma
específica.

Cuando llama a un método, tendrá un
comportamiento u otro dependiendo
de que clase sea el objeto.

El polimorfismo va ligado con la
herencia.
2
Formas de polimorfismo

El polimorfismo se puede dar de estas
formas:
- Sobrecarga.
- Ligadura dinámica.
3
Sobrecarga

Se produce cuando una clase tiene
métodos sobrecargados, es decir,
métodos con el mismo identificador pero
que difieren en el tipo que devuelve o los
parámetros que reciben.

La misma llamada a un método actuará
de una forma u otra en función de los
parámetros que reciba dicho método.
4
Sobrecarga
public class Ejemplo{
public static void main(String[] args){
Animal a1= new Animal();
Pajaro a2= new Pajaro();
Oso a3= new Oso();
Pez a4= new Pez();
a1.moverse();
a2.moverse();
a3.moverse();
a4.moverse();
}// main
}// class
5
Sobrecarga
public class Animal{
public void moverse(){
System.out.println(“El animal se mueve.”);
}
}
6
Sobrecarga
public class Pajaro extends Animal{
public void moverse(){
System.out.println(“El pájaro vuela.”);
}
}
7
Sobrecarga
public class Oso extends Animal{
public void moverse(){
System.out.println(“El oso camina.”);
}
}
8
Sobrecarga
public class Pez extends Animal{
public void moverse(){
System.out.println(“El pez nada.”);
}
}
9
Ligadura dinámica

Permite invocar métodos de un objeto
sin tener en cuenta su tipo hasta el
momento en que se ejecuta el código.
10
Ligadura dinámica
package mamifero;
public class Mamifero {
protected String nombre;
protected int patas;
public Mamifero() {
}
public Mamifero(String string) {
this.nombre = string;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
11
Ligadura dinámica
protected int getPatas() {
return patas;
}
public void setPatas(int patas) {
this.patas = patas;
}
public void comer() {
System.out.println("Soy un mamífero y quiero comer");
}
public void comer(String prueba) {
System.out.println("Soy un mamífero y quiero comer " + prueba);
}
public String toString() {
return "Mamifero: " + nombre + ",patas" + patas;
}
}// class
12
Ligadura dinámica
package mamifero;
public class Perro extends Mamifero {
public String nombre;
public int patas = 4;
public Perro(String nombre) {
super();
this.nombre = nombre;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public int getPatas() {
return patas;
}
13
Ligadura dinámica
public void setPatas(int patas) {
this.patas = patas;
}
public void Ladra() {
System.out.println("Guau");
}
public void comer() {
System.out.println("Soy un perro y quiero comer");
}
public void comer(String prueba) {
System.out.println("Soy un mamifero y quiero comer " + prueba);
}
public String toString() {
return "Perro: nombre=" + nombre + ",patas=" + patas;
}
}// class
14
Ligadura dinámica
package mamifero;
public class PruebaLigaduraDinamica {
public static void main(String[] args) {
Mamifero miMamifero = new Mamifero("Mamifero");
Mamifero miMamifero2 = new Perro("Perro");
miMamifero.comer();
miMamifero2.comer();
miMamifero.comer("Verdura");
miMamifero2.comer("Carne");
}// main
}// class
15
Conclusión

El significado de la palabra Polimorfismo es “múltiples
comportamientos”, es decir, en la programación
orientada a objetos el polimorfismo se refiere a la
posibilidad de definir clases diferentes que tienen
métodos o atributos denominados de forma idéntica,
pero que se comportan de manera distinta.

El polimorfismo es la capacidad que tiene un lenguaje
de programación, en este caso java de elegir uno u
otro método en función del contexto.
16
17
FIN PRESENTACIÓN
Fuentes
· Cristalab.com
· Apdaza-poo
· Todoexpertos.com
· Desarrolloweb.com
18