SlideShare una empresa de Scribd logo
1 de 13
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 Guitarra
package 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:
extends
Y 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() {}
}

Más contenido relacionado

Más de Jorge García Hrnández (16)

Conversiones
ConversionesConversiones
Conversiones
 
Variables y tipos de datos
Variables y tipos de datosVariables y tipos de datos
Variables y tipos de datos
 
Ejem encap
Ejem encapEjem encap
Ejem encap
 
Objetop
ObjetopObjetop
Objetop
 
Sintaxis basica
Sintaxis basicaSintaxis basica
Sintaxis basica
 
Ejem encap
Ejem encapEjem encap
Ejem encap
 
Ejem encap
Ejem encapEjem encap
Ejem encap
 
Objetop
ObjetopObjetop
Objetop
 
Sintaxis basica
Sintaxis basicaSintaxis basica
Sintaxis basica
 
Encapsulación
EncapsulaciónEncapsulación
Encapsulación
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Herencia
HerenciaHerencia
Herencia
 
Clase
ClaseClase
Clase
 
Abstraccion
AbstraccionAbstraccion
Abstraccion
 
Objetos
ObjetosObjetos
Objetos
 
Poo
PooPoo
Poo
 

Herencia, abstraccion y polimorfismo

  • 1.
  • 2. 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() {} }
  • 3.
  • 4. Creamos otra clase en NetBeans llamada Guitarra package herabspol; public class Guitarra extends HerAbsPol { public void tocar() { System.out.println("Guitarra.tocar()"); } public String tipo() { return "Guitarra"; } public void afinar() {} }
  • 5.
  • 6. 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() {} }
  • 7.
  • 8. 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() {} }
  • 9.
  • 10. 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);} }
  • 11.
  • 12. Nos podemos dar cuenta de la aplicación de la herencia con la sintaxis: extends Y en el caso del polimorfismo, lo aplicamos al redefinir para cada clase los métodos utilizados en la clase principal
  • 13. 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() {} }