Documentos de Académico
Documentos de Profesional
Documentos de Cultura
4.POO Polimorfismo
4.POO Polimorfismo
Característica de la POO, refiere la capacidad que tienen los objetos de una clase de responder
al mismo mensaje o evento en función de los parámetros utilizados durante su invocación. Es
decir cuando un mismo método toma diferentes comportamientos.
Clase Abstracta
Clase en la que sus métodos no tienen implementación. Sus métodos son declarados como
Abstract. En java se declara de la siguiente forma: public abstract class …
Interface
Tipo especial de clase en java en la cual sus métodos son públicos y abstractos. No requiere
utilizar en sus métodos el operador Abstract. Su declaración es: public interface … y
generalmente por nemotecnia su nombre inicia con la letra “I”.
Interface IAnimal.
1
public interface IAnimal {
2
3 int valor=5;
4
5 /**
6 * Método Comunicarse, sera implementado por las clases concretas
7 * que hereden de la clase Animal
*/
8
public void comunicarse();
9
10 }
11
La Interface IAnimal posee el método comunicarse() el cual es
completamente abstracto, evidenciamos que no es necesario
indicarlo mediante la palabra abstract...........De la misma forma
tenemos el atributo valor el cual (al ser declarado en la interface)
se comporta como una Constante, así que nunca va a cambiar (en
la entrada sobre Interfaces indicamos el porqué de estas
propiedades)....
Clase Gato.
1
2 public class Gato extends Animal{
3
4 /**
5 * Constructor explicito clase Gato
6 * @param nombre
*/
7 public Gato(String nombre) {
8 super(nombre);//envia el parametro a el constructor de la clase padre
9 System.out.println("Constructor Gato, nombre : "+nombre);
10 }
11
public void tipoAnimal() {
12 System.out.println("Tipo Animal : Es un Gato");
13 }
14
15 public void comunicarse(){
16 System.out.println("Metodo comunicarse : El gato maulla... Miau Miau");
17 }
}
18
19
Clase Perro.
1
2 public class Perro extends Animal{
3
4 /**
5 * @param nombre
*/
6 public Perro(String nombre) {
7 super(nombre);
8 System.out.println("Constructor perro, nombre : "+nombre);
9 }
10
11 public void tipoAnimal() {
System.out.println("Tipo Animal : Es un Perro");
12 }
13
14 public void comunicarse(){
15 System.out.println("Metodo comunicarse : El perro Ladra... Guau Guau");
16 }
17 }
18
Clase Test.
1
2
3
public class Test {
4
public static void main (String[] arg){
5
6 /**Creamos anim, un objeto Perro de tipo Animal*/
7 Animal anim= new Perro("goliath") ;
8 anim.tipoAnimal();
9 anim.comunicarse();
System.out.println();
10
11 /**Creamos perro, un objeto Perro de tipo Perro*/
12 Perro perro=new Perro("hercules");
13 perro.tipoAnimal();
14 System.out.println();
15
16 /**Creamos animalPolimorfico, un objeto perro de tipo Animal
* asignamos una referencia ya existente*/
17 Animal animalPolimorfico=perro;
18 animalPolimorfico.tipoAnimal();
19 System.out.println();
20
21 /**reasignamos la referencia del objeto anim a el objeto perro
22 * esto es valido ya que ambos son de tipo Perro*/
perro=(Perro) anim;
23 perro.tipoAnimal();
24 System.out.println();
25
26 /**Creamos gat, un objeto Gato de tipo Animal*/
27 Animal gat=new Gato("pichi");
28 gat.tipoAnimal();
gat.comunicarse();
29 System.out.println();
30
31 /**Creamos cat, un objeto Gato de tipo IAnimal
32 * Para esto aplicamos polimorfismo usando la Interface*/
33 IAnimal cat = new Gato("pitufa");
cat.comunicarse();
34
35
System.out.println("\nConstante en la interfaz Animal : "+IAnimal.valor);
36 }
37 }
38
39
40
Esta clase permite la creación de Objetos Polimorficos donde
vemos que podemos usar las superClases para crear objetos de
sus subClases, de esa forma podemos decir que perro es
un Animal o Gato es un Animal .... Al ejecutar obtenemos.
Fuentes
https://www.aprenderaprogramar.com
http://codejavu.blogspot.com/2013/06/ejemplo-de-polimorfismo-en-java.html