You are on page 1of 22

Polimorfismo, Clases Abstractas

e Interfaces
2014
Polimorfismo
En programacin orientada a objetos el
polimorfismo se refiere a la posibilidad de
enviar un mensaje a un grupo de objetos cuya
naturaleza puede ser heterognea. El nico
requisito que deben cumplir los objetos que se
utilizan de manera polimrfica es saber
responder al mensaje que se les enva.
http://es.wikipedia.org/wiki/Polimorfismo (informtica)
FUENTE:
Polimorfismo
El polimorfismo ocurre cuando un programa
invoca a un mtodo a travs de una variable de
la superclase; en tiempo de ejecucin, se hace
una llamada a la versin correcta del mtodo de
la subclase, con base en el tipo de la referencia
almacenada en la variable de la superclase.
Polimorfismo Ejemplo
5
Clases Abstractas (1)
Son clases de las cuales no se pueden crear directamente
objetos. Estn destinadas a ser superclases de otras. Definen un
conjunto de atributos comunes para todas las clases derivadas.

abstract class Personal {
int numero; String nombre; int ingreso;
public Personal(int num, String nom){
numero=num; nombre=nom;
}
//implementar en clase derivada
public abstract int sueldoBruto( );
}


6
Clases Abstractas (2)
Si en la declaracin de alguna clase hay al menos un mtodo
abstracto, toda la clase debe ser declarada como abstracta.
Al declarar una clase derivada de una abstracta DEBEMOS
implementar todos los mtodos abstractos que se haban
declarado.

public class Trabajador extends Personal
{
int HN, HE, VHN=5000, VHE=10000;
public Trabajador(String nom, int num, int hn, int he) {
super(nom,num); HN = hn; HE = he;
}
public int sueldoBruto()
{
return HN*VHN+HE*VHE;
}
}

7
Clases Abstractas (3)
public class Empleado extends Personal {
int sueldoBase, asignacion;
public Empleado(String nom, int num, int sb, int as) {
super(nom,num); sueldoBase = sb; asignacion = as; }
public int sueldoBruto() {
return sueldoBase+asignacion;
}
}

public class Gerente extends Personal {
int sueldoFijo, participacion;
public Gerente(String nom, int num, int sf, int pa) {
super(nom,num); sueldofijo = sf; participacion = pa;
}
public int sueldoBruto() {
return sueldofijo+participacion*1.5;
}
}
8
Clases Abstractas (4)
public class ProgramaSueldos
{
public static void main(String args[])
{
Personal[] P = new Personal[100];
/* aqu llenar arreglo por ej. con
P[0] = new Trabajador(a1,b1,c,d);
P[1] = new Trabajador(a2,b2,c,d);
P[2] = new Empleado(e1,f1,g,h);
P[3] = new Gerente(g1,l1,xy); o llamando rutina*/
int sumaSueldosBruto = 0;
for(int i = 0; i<100;++i)
sumaSueldosBruto += P[i].sueldoBruto();
System.out.println(la suma de los sueldos es+
sumaSueldosBruto;
}
}
Ejemplo Parte 1
Una compaa paga a sus empleados por semana.
Los empleados son de cuatro tipos: empleados
asalariados que reciben un salario semanal fijo, sin
importar el nmero de horas trabajadas; empleados
por horas, que reciben un sueldo por hora y pago
por tiempo extra, por todas las horas trabajadas
que excedan a 40 horas; empleados por comisin,
que reciben un porcentaje de sus ventas y
empleados asalariados por comisin, que reciben un
salario base ms un porcentaje de sus ventas.
Ejemplo Parte 2
Para este periodo de pago, la compaa ha
decidido recompensar a los empleados
asalariados por comisin, agregando un 10% a
sus salarios base. La compaa desea
implementar una aplicacin en Java que realice
sus clculos de nmina en forma polimrfica.
Grfico del Ejemplo
Interfaces
Interface
Ofrece Java una herramienta que
requiera que las clases no relacionadas
implementen un conjunto de mtodos comunes
(por ejemplo, un mtodo
que calcule un monto a pagar)?
Las interfaces de Java ofrecen exactamente esta herramienta.
Qu realizan las Interfaces?
Las interfaces definen y estandarizan las formas
en que pueden interactuar las cosas entre s,
como las personas y los sistemas.
Ejemplo N 1 de Interface
La interfaz especifica qu operaciones debe permitir la
radio que realicen los usuarios, pero no especifica cmo
deben realizarse las operaciones.
Ejemplo N 2 de Interface
La interfaz entre un conductor y un automvil
Volante
Palanca de cambios
Pedal del embrague
Pedal del acelerador
Pedal del freno
Interface en Java
Los objetos de software tambin se comunican a
travs de interfaces. Una interfaz de Java
describe un conjunto de mtodos que pueden
llamarse sobre un objeto, para indicar al objeto
que realice cierta tarea, o que devuelva cierta
pieza de informacin, por ejemplo.
Interface
La declaracin de una interfaz empieza con la
palabra clave interface y slo puede
contener constantes y mtodos abstract
A diferencia de las clases, todos los miembros
de la interfaz deben ser public
Para utilizar una interfaz, una clase debe
especificar que implementa (implements) a
esa interfaz.
UML e Interfaces
UML diferencia a una interfaz de otras clases
colocando la palabra interface entre los signos
y , por encima del nombre de la interfaz.

UML expresa la relacin entre una clase y una
interfaz a travs de una relacin conocida como
realizacin. Se dice que una clase realiza, o
implementa, los mtodos de una interfaz.
UML e Interfaces
Un diagrama de clases modela una realizacin
como una flecha punteada que parte de la
clase que realizar la implementacin, hasta la
interfaz.
Ejemplo de UML e Interfaces
PREGUNTAS ????

You might also like