Está en la página 1de 4

UNIDAD IV POLIMORFISMO (PARTE 1)

POLIMORFISMO

 El polimorfismo es la habilidad de un método, variable u objeto de poseer varias


formas distintas. Se puede decir que un mismo identificador comparte varios
significados diferentes

En programación orientada a objetos, polimorfismo es la capacidad que tienen


los objetos de una clase en ofrecer respuesta distinta e independiente en función
de los parámetros (diferentes implementaciones) utilizados durante su invocación.
Dicho de otro modo el objeto como entidad puede contener valores de diferentes
tipos durante la ejecución del programa.

En JAVA el término polimorfismo también suele definirse como ‘Sobrecarga de


parámetros’,

¿Cómo funciona el polimorfismo en programación?


En 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 concepto
de polimorfismo se puede aplicar tanto a métodos como a tipos de datos.
Ejemplo:

El siguiente programa lee e imprime 3 tipos de datos diferentes: string, char, int aplicando
polimorfismo y/o sobrecarga tanto en constructores como en métodos set

IMPORTANTE: el polimorfismo solo se puede aplicar a parámetros por valor y NO a


parámetro por refrencia

package Mensajes;
//CLASE BEAN
public class Datos {
private String msn1;
private char msn2;
private int msn3;
//EL POLIMORFISMO SOLO SE APLICA CUANDO EXISTEN PARAMETROS POR VALOR
// EL POLIMORFISMO Y SOBRECARGA SE PUEDEN APLICAR EN CONSTRUCTORES
//IMPORTANTE: TODOS LOS CONSTRUCTORES SE LLAMAN IGUAL QUE LA CLASE, PERO
TIENEN DIFERENTE NUMERO DE PARAMETROS Y/O DEIFERENTES TIPOS
// CUANDO SE EJECUTA EL PROGRAMA, SOLO ENTRA A UN CONSTRUCTOR, NO A
TODOS, EL COMPILADOR DETECTA A CUAL ENTRAR DEPENDIENDO DE LA INICIALIZACION DEL
CONSTRUCTOR, ES DECIR CUANDO EN OTRA CLASE DE HACE UN new

Datos(String msn1) // CONSTRUCTOR CON POLIMORFISMO Y PARÁMETRO DE TIPO


STRING
// ES UN SOLO PARAMETRO
{
this.msn1=msn1;
}
Datos(char msn2) //CONSTRUCTOR CON POLIMORFISMO Y PARAMETRO DE TIPO CHAR
// ES UN SOLO PARAMETRO
{
this.msn2=msn2;
}
Datos(int msn3) //CONSTRUCTOR CON POLIMORFISMO Y PARAMETRO DE TIPO INT
// ES UN SOLO PARAMETRO
{
this.msn3=msn3;
}
public Datos(String msn1,char msn2)// CONSTRUCTOR CON POLIMORFISMO
SOBRECARGADO
{ // SON 2 PARAMETROS DE DIFERENTE TIPO
this.msn1=msn1;
this.msn2=msn2;
}
public Datos(String msn1,char msn2, int msn3)// CONSTRUCTOR CON
POLIMORFISMO SOBRECARGADO
// SON 3 PARAMETROS DE DIFERENTE TIPO
{
this.msn1=msn1;
this.msn2=msn2;
this.msn3=msn3;
}

// EL POLIMORFISMO Y SOBRECARGA SE PUEDEN APLICAR EN METODOS SET


//IMPORTANTE: TODOS LOS METODOS SET SE DEBEN LLAMAN IGUAL ENTRE ELLOS,
PERO TIENEN DIFERENTE NUMERO DE PARAMETROS Y/O DEIFERENTES TIPOS
// CUANDO SE EJECUTA EL PROGRAMA, SOLO ENTRA A UN METODO, NO A TODOS, EL
COMPILADOR DETECTA A CUAL ENTRAR DEPENDIENDO DE QUE METODO SE INVOCO

public void setMsn(String msn1)// METODO SET CON POLIMORFISMO Y PARAMETRO


DE TIPO STRING
{
this.msn1=msn1;
}
public void setMsn(char msn2)// METODO SET CON POLIMORFISMO Y PARAMETRO
DE TIPO CHAR
{
this.msn2=msn2;
}
public void setMsn(String msn1,char msn2)//METODO SET CON POLIMORFISMO Y
PARAMETRO DE TIPO INT
{
this.msn1=msn1;
this.msn2=msn2;
}
public void setMsn(String msn1,char msn2, int msn3)//METODO SET CON
POLIMORFISMO SOBRECARGADO Y 3 PARAMETROS DIFERENTES
{
this.msn1=msn1;
this.msn2=msn2;
this.msn3=msn3;
}
//EL POLIMORFISMO NO SE APLICA EN LOS METODOS QUE NO TIENEN PARAMETROS
POR VALOR
public String getMsn1()
{
return this.msn1;
}
public char getMsn2()
{
return this.msn2;
}
public int getMsn3()
{
return this.msn3;
}

////////////////////////////////////////////////////////////////////////////////

package Mensajes;

import javax.swing.JOptionPane;

public class Operaciones {


Datos ob1=new Datos("");
Datos ob2=new Datos(' ');
Datos ob3=new Datos(" ",' ' );
Datos ob4= new Datos(" ",' ', 0 );
public void Lectura(){
JOptionPane.showMessageDialog(null,"POLIMORFISMO CON STRING");
ob1.setMsn(JOptionPane.showInputDialog("Escribe una cadena"));
JOptionPane.showMessageDialog(null,"POLIMORFISMO CON un caracter");
ob2.setMsn(JOptionPane.showInputDialog("Escribe una
letra").charAt(0));
JOptionPane.showMessageDialog(null,"POLIMORFISMO CON STRING y
caracter");
ob3.setMsn(JOptionPane.showInputDialog("Escribe una
cadena"),JOptionPane.showInputDialog(" y tambien Escribe una letra").charAt(0));
JOptionPane.showMessageDialog(null,"POLIMORFISMO CON STRING,
caracter y numero");
ob4.setMsn(JOptionPane.showInputDialog("Escribe una
cadena"),JOptionPane.showInputDialog("tambien Escribe una
letra").charAt(0),Integer.parseInt(JOptionPane.showInputDialog( "y tambien
Escribe un numero")));
}
public void Imprimir(){
JOptionPane.showMessageDialog(null,"Mensaje string
"+ob1.getMsn1());
JOptionPane.showMessageDialog(null,"Mensaje caracter
"+ob2.getMsn2());
JOptionPane.showMessageDialog(null,"Mensaje cadena y caracter
"+ob1.getMsn1()+ " "+ob2.getMsn2());
JOptionPane.showMessageDialog(null,"Mensaje cadena, caracter y
numero "+ob1.getMsn1()+ " "+ob2.getMsn2()+" "+ob4.getMsn3());
}

/////////////////////////////////////////////////////////////////

package Mensajes;

public class Principal {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Operaciones o= new Operaciones();
o.Lectura();
o.Imprimir();

También podría gustarte