Sie sind auf Seite 1von 8

Paradigmas de Programacin

Orientacin a Objetos

OO: Polimorfismo

Clase: es una descripcin de una Categora de Objetos que poseen los


mismos atributos y el mismo comportamiento.

Polimorfismo: capacidad de un mensaje de manejar distintos tipos o


cantidades de parmetros.
Hay dos tipos bsicos de polimorfismo: Paramtrico y Sobrecarga.

Polimorfismo Paramtrico: ante distintas clases de parmetros, se realiza la


misma funcin

Beneficio principal: generalizacin (mayor nivel de abstraccin)

Sobrecarga Semntica: de acuerdo a las clases de los parmetros, se realizan


distintas funciones

Beneficio principal: reuso de nombres de mensajes

OO: Polimorfismo

Polimorfismo Paramtrico
Ejemplos en lenguaje imperativo:

Read(id)
Write(cadena: , unNumero)

Ejemplos en Orientacin a Objetos:

pila.apilar(unObjeto)
lista.agregar(unObjeto)

Sobrecarga Semntica
Ejemplo en lenguaje imperativo: operador +

23 + 4.56 (suma)
esta es + una cadena (concatenacin de cadenas)
[3, 1, 8] + [10, 2. 1] (unin de conjunto)

Ejemplo en Orientacin a Objetos:

unNumeroComplejo.agregar(otroNumeroComplejo) (suma dos complejos)


lista.agregar(unObjeto) (agrega un elemento a una lista)

OO: Herencia

Herencia: mecanismo de la OO mediante el cul una clase, llamada


clase "hija" o "subclase" asume como propios los atributos y el
comportamiento de otra clase, llamada clase "Padre" o "superclase".

Conceptualmente la herencia representa la relacin ES-UN" entre


dos clases.

Ejemplos:

una Cuenta Corriente es una Cuenta Bancaria


una Caja de Ahorro es una Cuenta Bancaria

Un Objeto de una clase, contendr el comportamiento y los atributos


de dicha clase y de su superclase (y as sucesivamente)
4

OO: Herencia
Clase Padre (superclase)
Mensajes
Mtodos

Objeto (de Clase Hija)

Atributos

Es-un

Clase Hija (subclase)


Mensajes
Mtodos

Mensajes
(interfaz)

Mtodos
(algoritmos)
Atributos

(datos)

Atributos

OO: Herencia y Jerarqua de Clases

Jerarqua de Clases: estructura de rbol (o bosque) que representa


la relacin de Herencia entre las distintas Clases de un sistema.

Cuenta Bancaria

Cuenta Corriente

Cuenta Corriente en Pesos

Caja de Ahorro

Cuenta Corriente en Dlares


6

OO: Herencia

Clase abstracta: clase que no se instancia.


Clase concreta: clase que est diseada para poseer instancias.
La herencia es Transitiva: si una clase A, hereda de una clase B, y B hereda de C, entonces
A, hereda de C tambin.
Caractersticas que tiene que tener una relacin, para ser considerada herencia:

Se debe cumplir la relacin ES-UN entre la clase hija y la clase padre

Conceptualmente, la relacin debe permanecer durante toda la vida del objeto

La clase hija debe contener un conjunto estrictamente ms grande de responsabilidades


(mensajes)

Ejemplos (vlidos e invlidos):

Cuenta Corriente ES UNA Cuenta Bancaria


Lista ES UN - Arreglo
Lista ES UNA Coleccin
Conjunto ES UNA Coleccin
Alumno ES UNA Persona
Profesor ES UNA - Persona

OO: Herencia en OO Pascal


DEFINICIN DE CLASES EN OO Pascal
UNIT idUnidad;
INTERFACE
TYPE
idClasePadre = OBJECT
idAtributoP1:tipoOClase1;
...
idAtributoPN:tipoOClaseN;
PROCEDURE idMensajeP1(parametros);
...
PROCEDURE idMensajePM(parametros);
END;
idClaseHija = OBJECT (idClasePadre)
idAtributoH1:tipoOClase1;
...
idAtributoHN:tipoOClaseN;
PROCEDURE idMensajeH1(parametros);
...
PROCEDURE idMensajeHM(parametros);
END;
IMPLEMENTATION
PROCEDURE idClaseHija.idMensajeH1(parametros);
declaraciones
BEGIN
{los atributos tanto de la clase hija como de la clase padre, se acceden en forma directa dentro del mtodo}
{los mensajes de la clase padre se llaman de la misma manera que los propios, salvo que un mensaje de la clase hija
tenga el mismo nombre que un mensaje de la clase padre. En este caso para hacer referencia al mensaje heredado en
lugar de self.mensaje es necesario utilizar super.mensaje}
END;

Das könnte Ihnen auch gefallen