Documentos de Académico
Documentos de Profesional
Documentos de Cultura
UNIDAD II
MATERIA:
PROGRAMACIN DE APLICACIONES
ACTIVIDAD:
CLASES ABSTRACTAS
ALUMNA:
CUATRIMESTRE Y GRUPO:
7 A
INTRODUCCIN
Las clases abstractas son similares a las clases normales en su construccin y
concepto aunque se diferencian de estas en 2 aspectos fundamentales:
Una clase abstracta no puede ser instanciada, no podremos crear objetos a partir
de ellas.
Una clase abstracta puede incorporar mtodos abstractos. Los mtodos
abstractos son aquellos que solo existe su declaracin, dejando su
implementacin a las futuras clases extendidas o derivadas.
Una clase abstracta puede contener funciones y mtodos que sern utilizados por
las clases que implementen la clase abstracta. En cada clase abstracta, podemos
declarar mtodos, funciones, eventos, delegados, propiedades y variables.
Una clase abstracta puede incluir funcionalidad, al contrario que una interfaz. Una
clase slo puede implementar una nica clase abstracta, ya que no existe soporte
para herencia mltiple. Independientemente de todo lo comentado hasta ahora, una
clase que herede de una clase abstracta no tiene porqu implementar ningn
mtodo abstracto de la misma ya que como clase derivada, es en s misma una
clase abstracta.
Finalmente, una clase abstracta puede contener estados (data members) e
implementaciones (funciones y mtodos).
DESARROLLO
Clases definidas en la jerarqua que simplemente recogen las caractersticas
comunes de otra serie de clases (sus descendientes), pero que no se van a o no se
deben utilizar para crear ejemplares.
Una clase que declara la existencia de mtodos pero no la implementacin de
dichos mtodos, estos mtodos no hacen nada, solo son declarados, se considera
una clase abstracta. Una clase abstracta puede contener mtodos no abstractos
pero al menos uno de los mtodos debe ser abstracto.
Caractersticas de una Clase abstracta:
Mtodos Abstractos.
Representacin Grfica.
Ejemplo
Como ejemplo tomaremos dos figuras geomtricas, el Rectngulo y el Tringulo
rectngulo, para el ejemplo slo consideraremos dos caractersticas similares: el
ancho y el alto, por lo que podemos crear una sper clase Figura geomtrica con
estas dos caractersticas y sus mtodos correspondientes, adems del mtodos
getrea() que devolver el rea de la Figura. Pero, se presenta un problema, el
clculo del rea del Rectngulo es diferente al clculo del rea del Tringulo.
rea del Rectngulo = ancho X alto
rea del Tringulo = (ancho X alto)/2
Por lo tanto, el mtodo getrea() deber ser abstracto, por lo cual, la clase Figura
tambin deber ser abstracta.
CONCLUSIN
Para concluir en este tema las clases abstractas los tipos de datos son privado para
todas aquellas clases que no son derivadas, pero pblico para una clase derivada
de la clase en la que se ha definido la variable como protected.
Una clase abstracta no se puede instanciar (es decir no se pueden volver en
objetos) pero si se puede heredar y las clases hijas sern las encargadas de agregar
la funcionalidad a los mtodos abstractos.
Muchas veces se confunde con clase base. No es que sean muy diferentes, pero
ojo, tampoco son la misma cosa. Es importante aclarar este aspecto. De hecho, una
clase abstracta puede contener lgica y funcionalidad, algo que es coincidente con
una clase base.
Sin embargo, no es posible instanciar una clase abstracta, mientras que en el caso
de una clase base s tal y como coment anteriormente. Es decir, para utilizar una
clase abstracta, no tenemos ms remedio que heredar de ella.
No obstante, podemos sobre escribir los miembros, mtodos y funciones de una
clase abstracta, e incluso extender la clase que herede de ella con las
particularidades que consideremos oportunas.