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
© Copyright 2024