Semestre: 2
Grupo: e1
Carrera:
INGENIERA EN TECNOLOGIAS DE LA INFORMACION Y
COMUNICACIONES
INDICE
Herencia
polimorfismo..3
herencia
INTRODUCCIN
En esta investigacin de la unidad 5 herencia y polimorfismo se habla de su
significado tanto del tema principal como de sus subtemas, entonces sabemos que
la herencia nos permite crear nuevas clases a partir o ms bien basadas en una
clase ya existente. Y el polimorfismo consiste en obtener un mismo mtodo con
diferentes funciones.
HERENCIA Y POLIMORFISMO
5.1. CONCEPTO DE HERENCIA Y POLIMORFISMO
2
Ejemplos:
A
B puede incluir adaptaciones:
B puede aadir nuevos atributos
B puede aadir nuevos mtodos
B puede redefinir mtodos
Tipos de herencia
Herencia simple
Una clase puede heredar de una nica clase.
Ejemplo: Java, C#
Herencia mltiple
Una clase puede heredar de varias clases.
Clases forman un grafo dirigido acclico
Ejemplos: Eiffel, C++
En la herencia mltiple, al menos una clase sucesora hereda de ms de una
clase antecesora directa, como se muestra en la imagen.
Esto es, la clase hija hereda los mtodos y datos definidos para la clase
madre.
Para ajustar una clase derivada, el programador puede agregar nuevos
datos y/o mtodos, o puede modificar los heredados
Declarando
subclase.
una
En java usamos la
palabra
reservada
extends
para
establecerlo.
POLIMORFISMO
de diferentes clases.
El conjunto de clases a las que se puede hacer referencia est restringido
por la herencia.
Importante para escribir cdigo genrico
El polimorfismo implica que una variable tiene un tipo esttico y un tipo
dinmico
En 1 es Deposito
En 3. es DepositoEstructurado
Polimorfismo puro
Mtodo que puede recibir como argumento objetos de diferentes tipos
El parmetro es una entidad polimrfica
}
Sobrecarga:
Un cdigo para cada tipo de Deposito
public doubleindiceRentabilidad(Deposito deposito) {
}
public doubleindiceRentabilidad(DepositoEstructurado deposito){
}
5.2.
La clase base define todas las cualidades que sern comunes a cualquier clase
derivada. Otro punto importante es el acceso a la clase base. El acceso a la clase
base pude tomar 3 valores, public, private y protected.
para la derivada.
Si el acceso es private, los datos son privados para la clase base la
Cuando se dan cuenta que diversos tipos tienen algo en comn, por
ejemplo en el juego del ajedrez peones, alfiles, rey, reina, caballos y torres,
son piezas del juego. Creamos, por tanto, una clase base y derivamos cada
Ventana Titulo hace una llamada a la funcin mostrar de la clase base Ventana,
mediante
Una clase derivada hereda la funcin miembro de su clase base. Esto significa
que se hereda la capacidad para llamar a funciones miembro de la clase base en
los objetos de la clase derivada.
Los siguientes elementos de la clase no se heredan:
- Constructores
- Destructores
- Funciones amigas
- Funciones estticas de la clase
- Datos estticos de la clase
- Operador de asignacin sobrecargado
Una clase abstracta no se puede instanciar pero si se puede heredar y las clases
hijas sern las encargadas de agregar la funcionalidad a los mtodos abstractos.
Si no lo hacen as, las clases hijas deben ser tambin abstractas.
10
11
12
En Java no se puede hacer herencia mltiple. Por ejemplo, de la clase aparato con
motor y de la clase animal no se puede derivar nada, sera como obtener el objeto
toro mecnico a partir de una mquina motorizada (aparato con motor) y un toro
(animal). En realidad, lo que se pretende es copiar los mtodos, es decir, pasar la
funcionalidad del toro de verdad al toro mecnico, con lo cual no sera necesaria la
herencia mltiple sino simplemente la comparticin de funcionalidad que se
encuentra implementada en Java a travs de interfaces.
Una Interfaz es una especificacin para las operaciones externas visibles de una
clase, componente, u otra entidad (incluyendo unidades globales como los
paquetes), pero siempre sin especificar la estructura interna.
5.7. REUTILIZACIN DE LA DEFINICIN DE PAQUETES / LIBRERAS.
Paquetes
Es un contenedor de clases que permite agrupar las distintas partes de un
programa cuya funcionalidad tienen elementos comunes.
Librera
Igualmente estamos llamando a una clase especfica o a todo un paquete.
Los paquetes son grupos de clases relacionadas; ayudan a organizar su cdigo y
proporcionan otra capa encapsulamiento.
13
En programacin, los paquetes, con frecuencia son tiles para agrupar las piezas
relacionadas de un programa Un paquete sirve para dos propsitos: primero,
suministra un mecanismo por el cual piezas relacionadas de un programa pueden
ser organizadas como una unidad. As, un paquete proporciona la manera de
nombrar una coleccin de clases. Segundo, un paquete participa en los
mecanismos de control de acceso en java. Las clases definidas dentro de un
paquete pueden hacerse privadas a ese paquete y no accesibles por cdigo fuera
del paquete. De este modo, el paquete suministra un medio por el cual las clases
pueden ser encapsuladas. DEFINIR UN PAQUETE: Todas las clases en Java
pertenecen a algn paquete. Adems, el paquete predeterminado no tiene
nombre, lo que lo hace transparente.
5.8. CLASES GENRICAS (PLANTILLAS).
Tal como en Java 5 (JDK 1.5), Scala provee soporte nativo para parametrizar
clases con tipos. Eso es llamado clases genricas y son especialmente
importantes para el desarrollo de clases tipo coleccin.
Las clases genricas encapsulan operaciones que no son especficas de un tipo
de datos concreto. El uso ms comn de las clases genricas se da con las
colecciones, como listas vinculadas, tablas hash, pilas, colas, rboles, etc., en las
que las operaciones tales como agregar y quitar elementos de la coleccin se
realizan de forma similar independientemente del tipo de datos que se almacena.
subclases.
Implementar o no una o varias interfaces genricas.
14
El sistema de plantillas permite definir una clase genrica que instancie versiones
de mVector para matrices de cualquier tipo especificado por un parmetro. La
ventaja de este diseo parametrizado, es que cualquiera que sea el tipo de objetos
utilizados por las especializaciones de la plantilla, las operaciones bsicas son
siempre las mismas (insercin, borrado, seleccin de un elemento, etc.).
Definicin
La definicin de una clase genrica tiene el siguiente aspecto:
Template<lista-de-parametros> class nombreClase {// Definicin
15
CONCLUSIN
Estos temas son de gran importancia ya que nos ayudan a comprender, para as
ponerlo en prctica, la herencia nos facilita el poder cambiar las clases que
usamos fcilmente, crear nuevas clases a partir de unas ya existentes, esos son
unas de las ventajas que la herencia nos puede dar.
Con lo que hemos visto podemos decir que la herencia tiene dos implicaciones
importantes: la primera, la reutilizacin de cdigo (herencia de cdigo) y la
segunda el permitir el polimorfismo (herencia del tipo)
16
BIBLIOGRAFA
Herencia. Pgina consultada el 27 de mayo del 2015. Disponible en internet:
http://aprenderaprogramar.com/index.php?
option=com_content&view=article&id=673:resumen-de-ventajas-de-la-herenciaen-java-avanzar-en-java-swing-gestion-de-errores-y-mascu00698b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188
Esta pgina fue modificada por ltima vez el 10 mar 2015 a las 20:18.
Polimorfismo. Recuperado de: http://es.wikipedia.org/wiki/Polimorfismo_(inform
%C3%A1tica)
Martnez Rolando (2010). Herencia y polimorfismo. Pgina consultada el 27 de
mayo
del
2015.
Disponible
en
internet:
http://es.slideshare.net/nano_trujillo/herencia-y-polimorfismo-2827363
Gonzales M (2010). Herencia y polimorfismo. Pgina consultada el 27 de mayo del
2015. Disponible en internet: http://www.ctr.unican.es/asignaturas/pp/apuntes/03herencia_3en1.pdf
Muoz Jess (2010). Polimorfismo. Pgina consultada el 27 de mayo del 2015.
Disponible en internet: Pgina consultada el 27 de mayo del 2015. Disponible en
internet: http://es.slideshare.net/networksens/10-polimorfismo?related=1
Orozco Cristian (2014) Polimorfismo. Pgina consultada el 27 de mayo del 2015.
Disponible en internet: Pgina consultada el 27 de mayo del 2015. Disponible en
internet: http://es.slideshare.net/Cristian_lycan/polimorfismo-29774146?related=2
17