Vous êtes sur la page 1sur 20

POLIMORFISMO Y

SOBRECARGA
Grupo N 6

Conceptos claves en POO

Abstraccin de
datos
Encapsulamiento
Herencia
Polimorfismo

POLIMORFISMO

Polimorfismo: definicin de clase


Propiedad donde una abstraccin
posee una variedad de tipos
relacionados que opera
uniformemente sobre sus
argumentos cualquiera sea su tipo
Un mismo cdigo puede recibir
parmetros de distinto tipo

Polimorfismo en POO
Habilidad que poseen dos o ms objetos de
responder a un mismo mensaje, cada uno de
distinta forma.
Ejemplo: Funcin imprimir

Ejemplo 1

Ejemplo 2

Comportamientos
polimrficos
Polimorfismo de inclusin
Sobrecarga - Redefinicin
Transformacin automtica de
tipos o cast

SOBRECARGA

SOBRECARGA
En POO , la sobrecarga permite que un
programa tenga el mismo nombre que otro
con la condicin que tengan distinta
cantidad de parmetros o estos sean de
distinto tipo.
El mismo mtodo dentro de una clase
permite hacer distintas cosas en funcin
de los parmetros.
Algunos lenguajes no permiten sobrecargar
operadores pero si utilizar los predefinidos.

Ejemplo 3 Sobrecarga
public class Elipse {
public Elipse () {
// cuerpo de Elipse, sin parmetros
}
public Elipse (int radio, int radio2) {
// cuerpo de Elipse, con 2 parmetros
}
public Elipse (double radio, double radio2) {
// cuerpo de Elipse, con 2 parmetros double
}
}

Ejemplo 4 : Sobrecarga
double potencia (double x , int n) {
// cuerpo de la funcin
}
int potencia (int m , int n) {
// cuerpo de la funcin
}
double potencia (double x , double y) {
// cuerpo de la funcin
}
// double potencia (int m , int n)
// sera invlido porque difiere slo en el tipo
devuelto

TRANSFORMACIN
AUTOMTICA DE TIPOS
O CAST

MTODOS SOBRECARGADOS

Clase InputStream de Java implementando tres formas del


mtodo read:
public int read ( )
public int read ( byte [] b)
public int read (byte [] b, int off, int len )
Clase PrintStream implementando distintas formas del
mtodo print y printl:
public void print (int i )
public void print (double d )
public void print (char [] s )
En qu se diferencian los mtodos read expuesto? y los los
mtodos print ?

OTRO MTODO SOBRECARGADO


public void asignarFecha ()
{
// Asignar por omisin la fecha actual
GregorianCalendar fechaActual = new GregorianCalendar ();
dia = fechaActual. get (Calendar.DAY_OF_MONTH);
mes= fechaActual. get (Calendar.MONTH)+1;
ao= fechaActual. get (Calendar.YEAR);
}
public void asignarFecha (int dd)
{
asignarFecha();
dia = dd;
}

public void asignarFecha (int dd, int mm)


{
asignarFecha();
dia = dd; mes = mm;
}
public void asignarFecha (int dd, int mm, int aaaa)
{
asignarFecha();
dia = dd; mes = mm; ao = aaaa ;
}

Es posible invocar el mtodo


asignarFecha de distintas formas
fecha.asignarFecha
fecha.asignarFecha
fecha.asignarFecha
fecha.asignarFecha

( );
( dia);
(dia, mes);
(dia, mes, ao );

PREGUNTAS?