Sunteți pe pagina 1din 13

Universidad Nacional de

Ingenieria
Exposicin realizada por:
Greivin Steven Leiva
Misael Alejandro Lpez Snchez
Chester Gonzlez Amoretty
Kevin moiss Murillo Ruiz
Marvin Eduardo Muoz Gastn
Iriam Ali Lpez Zniga
Explicar los conceptos de herencia y polimorfismo.
Relacionar la herencia y el polimorfismo con conceptos obtenidos
en cursos anteriores.
Distinguir y examinar ambos conceptos para que los estudiantes
comprendan su importancia.
Introduccin a la POO (Programacin orientada
a objetos)
La programacin orientada a objetos consiste en ordenar datos en conjuntos modulares de elementos
de informacin del mundo real (denominado un dominio). Estos elementos de datos se llaman objetos.
Estos datos se agrupan de acuerdo a las caractersticas principales del mundo real de estos elementos
(tamao, color, etc.).
Un objeto se caracteriza por varios conceptos:
Atributos: estos son los datos que caracterizan al objeto. Son variables que almacenan datos
relacionados al estado de un objeto.
Mtodos (usualmente llamados funciones de miembro): Los mtodos de un objeto caracterizan
su comportamiento, es decir, son todas las acciones (denominadas operaciones) que el objeto
puede realizar por s mismo. Estas operaciones hacen posible que el objeto responda a las
solicitudes externas (o que acte sobre otros objetos). Adems, las operaciones estn
estrechamente ligadas a los atributos, ya que sus acciones pueden depender de, o modificar,
los valores de un atributo.
Identidad: El objeto tiene una identidad, que lo distingue de otros objetos, sin considerar su
estado. Por lo general, esta identidad se crea mediante un identificador que deriva
naturalmente de un problema (por ejemplo: un producto puede estar representado por un
cdigo, un automvil, por un nmero de modelo, etc.).

Una clase es la estructura de un objeto, es decir, la definicin de todos los elementos de que est hecho
un objeto. Un objeto es, por lo tanto, el "resultado" de una clase. En realidad, un objeto es una
instancia de una clase, por lo que se pueden intercambiar los trminos objeto o instancia (o incluso
evento).
Una clase se compone de dos partes:
Atributos (denominados, por lo general, datos miembros): esto es, los datos que se refieren al estado
del objeto
Mtodos (denominados, por lo general, funciones miembros): son funciones que pueden aplicarse a
objetos
Si tenemos una clase llamada auto, los objetos Peugeot y Renault sern instancias de esa clase.
Tambin puede haber otros objetos Peugeot 406, diferenciados por su nmero de modelo. Asimismo,
dos instancias de una clase pueden tener los mismos atributos, pero considerarse objetos distintos
independientes. En un contexto real: dos camisas pueden ser idnticas, pero no obstante, tambin ser
diferentes de alguna manera. Sin embargo, si las mezclamos es imposible distinguir una de la otra.
La relacin primaria-secundaria entre clases puede representarse desde un punto de vista
jerrquico, denominado vista de clases en rbol. La vista en rbol comienza con una clase
general llamada superclase (a la que algunas veces se hace referencia como clase
primaria, clase padre, clase principal, o clase madre; existen muchas metforas
genealgicas). Las clases derivadas (clase secundaria o subclase) se vuelven cada vez ms
especializadas a medida que van descendiendo el rbol. Por lo tanto, se suele hacer
referencia a la relacin que une a una clase secundaria con una clase primaria mediante la
frase "es una" x o y.

El concepto de encapsulacin
La encapsulacin es un mecanismo que consiste en organizar datos y mtodos de una estructura,
conciliando el modo en que el objeto se implementa, es decir, evitando el acceso a datos por
cualquier otro medio distinto a los especificados. Por lo tanto, la encapsulacin garantiza la
integridad de los datos que contiene un objeto.
Ocultacin de datos
El usuario de una clase en particular no necesita saber cmo estn estructurados los datos dentro de ese
objeto, es decir, un usuario no necesita conocer la implementacin Al evitar que el usuario modifique los
atributos directamente y forzndolo a utilizar funciones definidas para modificarlos (llamadas interfaces),
se garantiza la integridad de los datos (por ejemplo, uno puede asegurarse de que el tipo de datos
suministrados cumple con nuestras expectativas bien que los se encuentran dentro del periodo de tiempo
esperado).
La encapsulacin define los niveles de acceso para elementos de esa clase. Estos niveles de acceso
definen los derechos de acceso para los datos, permitindonos el acceso a datos a travs de un mtodo de
esa clase en particular, desde una clase heredada o incluso desde cualquier otra clase. Existen tres niveles
de acceso:
pblico: funciones de toda clase pueden acceder a los datos o mtodos de una clase que se define con el
nivel de acceso pblico. Este es el nivel de proteccin de datos ms bajo
protegido: el acceso a los datos est restringido a las funciones de clases heredadas, es decir, las
funciones miembro de esa clase y todas las subclases
privado: el acceso a los datos est restringido a los mtodos de esa clase en particular. Este es nivel ms
alto de proteccin de datos

La herencia es especfica de la programacin orientada a objetos, donde una clase
nueva se crea a partir de una clase existente. La herencia (a la que habitualmente se
denomina subclases) proviene del hecho de que la subclase (la nueva clase creada)
contiene las atributos y mtodos de la clase primaria. La principal ventaja de la
herencia es la capacidad para definir atributos y mtodos nuevos para la subclase, que
luego se aplican a los atributos y mtodos heredados.

Esta particularidad permite crear una estructura jerrquica de clases cada vez ms
especializada. La gran ventaja es que uno ya no debe comenzar desde cero cuando
desea especializar una clase existente. Como resultado, se pueden adquirir bibliotecas
de clases que ofrecen una base que puede especializarse a voluntad (la compaa que
vende estas clases tiende a proteger las datos miembro usando la encapsulacin).
Herencia mltiple

Algunos lenguajes orientados a objetos, como C++ permiten herencias
mltiples, lo que significa que una clase puede heredar los atributos de otras
dos superclases. Este mtodo puede utilizarse para agrupar atributos y
mtodos desde varias clases dentro de una sola.

Polimorfismo
Trataremos de describir ahora
con ms precisin estos tipos de
polimorfismo, pero le sugerimos
prestar atencin, ya que muchas
personas suelen confundirse al
tratar de comprender las
diferencias existentes entre estos
tres tipos.
La palabra polimorfismo proviene del griego y significa que posee varias formas diferentes.
Este es uno de los conceptos esenciales de una programacin orientada a objetos. As como
la herencia est relacionada con las clases y su jerarqua, el polimorfismo se relaciona con
los mtodos.
Polimorfismo de sobrecarga

El polimorfismo de sobrecarga ocurre cuando las funciones del mismo nombre
existen, con funcionalidad similar, en clases que son completamente independientes
una de otra (stas no tienen que ser clases secundarias de la clase objeto). Por
ejemplo, la clase complex, la clase image y la clase link pueden todas tener la
funcin "display". Esto significa que no necesitamos preocuparnos sobre el tipo de
objeto con el que estamos trabajando si todo lo que deseamos es verlo en la
pantalla.
Por lo tanto, el polimorfismo de sobrecarga nos permite definir operadores cuyos
comportamientos varan de acuerdo a los parmetros que se les aplican. As es
posible, por ejemplo, agregar el operador + y hacer que se comporte de manera
distinta cuando est haciendo referencia a una operacin entre dos nmeros enteros
(suma) o bien cuando se encuentra entre dos cadenas de caracteres (concatenacin).

El polimorfismo paramtrico es la capacidad para definir varias funciones utilizando el mismo
nombre, pero usando parmetros diferentes (nombre y/o tipo). El
polimorfismo paramtrico selecciona automticamente el mtodo correcto a aplicar en funcin
del tipo de datos pasados en el parmetro.
Por lo tanto, podemos por ejemplo, definir varios mtodos homnimos de addition() efectuando
una suma de valores.
El mtodo int addition(int,int) devolvera la suma de dos nmeros enteros.
float addition(float, float) devolvera la suma de dos flotantes.
char addition(char, char) dara por resultado la suma de dos caracteres definidos por el autor.
etc.
Una signature es el nombre y tipo (esttico) que se da a los argumentos de una funcin. Por
esto, una firma de mtodo determina qu elemento se va a llamar.

Polimorfismo paramtrico
Polimorfismo de subtipado

La habilidad para redefinir un mtodo en clases que se hereda de una clase base
se llama especializacin. Por lo tanto, se puede llamar un mtodo de objeto sin
tener que conocer su tipo intrnseco: esto es polimorfismo de subtipado.
Permite no tomar en cuenta detalles de las clases especializadas de una familia
de objetos, enmascarndolos con una interfaz comn (siendo esta la clase
bsica).
Imagine un juego de ajedrez con los
objetos rey, reina, alfil, caballo, torre y pen, cada uno heredando el
objeto pieza.

El mtodo movimiento podra, usando polimorfismo de subtipado, hacer el
movimiento correspondiente de acuerdo a la clase objeto que se llama. Esto
permite al programa realizar el movimiento.de_pieza sin tener que verse
conectado con cada tipo de pieza en particular.

Mas informacin en:
http://iriamingenieria.blogspot.com/2014/09/exposiciones2014.html

S-ar putea să vă placă și