herencia, abstraccion y polimorfismo

Post on 06-Jun-2015

79 Views

Category:

Documents

8 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Ejemplo de Herencia,Abstracción y Polimorfismo

Jorge García Hernández

Por:

A continuación, vamos a hacer un ejemplo de herencia, y polimorfismo, comenzamos creando la siguiente clase llamada HerAbsPol:

/*Jorge García Hernández*/package herabspol;public class HerAbsPol {

public void tocar() {System.out.println("Instrumento.tocar()");

} public String tipo() {

return "Instrumento"; } public void afinar() {}}

Creamos otra clase en NetBeans llamada Guitarrapackage herabspol;

public class Guitarra extends HerAbsPol { public void tocar() {

System.out.println("Guitarra.tocar()"); } public String tipo() { return "Guitarra"; } public void afinar() {} }

Posteriormente creamos la clase Piano:

package herabspol;

public class Piano extends HerAbsPol{ public void tocar() {

System.out.println("Piano.tocar()"); } public String tipo() { return "Piano"; } public void afinar() {} }

Ahora la clase Saxofon:

package herabspol;

public class Saxofon extends HerAbsPol{ public void tocar() {

System.out.println("Saxofon.tocar()"); } public String tipo() { return "Saxofon"; } public void afinar() {}}

Por último creamos la clase principal:

package herabspol;public class Musica { static void afinar(HerAbsPol i) {

i.tocar(); } static void afinarTodo(HerAbsPol[] e) {

for(int i = 0; i < e.length; i++) afinar(e[i]);}

public static void main(String[] args) {HerAbsPol[] orquesta = new HerAbsPol[5];int i = 0;orquesta[i++] = new Guitarra();orquesta[i++] = new Piano();orquesta[i++] = new Saxofon();afinarTodo(orquesta);}

}

Nos podemos dar cuenta de la aplicación de la herencia con la sintaxis:extendsY en el caso del polimorfismo, lo aplicamos al redefinir para cada clase los métodos utilizados en la clase principal

Y para la abstracción usaremos la palabra reservada abstract:

package herabspol;abstract class HerAbsPol {public abstract void tocar() {

System.out.println("Instrumento.tocar()"); } public String tipo() {

return "Instrumento"; } public abstract void afinar() {}}

top related