Herencia Simple

9
Herencia Simple

description

herencia simple

Transcript of Herencia Simple

Herencia Simple

Herencia SimpleGeneralidades sobre el concepto de herencia

Se entiende por herencia el proceso por el que una clase puede tomar caractersticas de otra.Gracias a la herencia, podemos hacer que todas las clases que tengamos, o las que nos interesen, puedan estar conectadas entre s, aprovechando, unas de otras, diversas caractersticas bsicas.La idea de la herencia parte de poder tener un diseo en el que todo se vaya descomponiendo en mdulos o problemas que van de lo ms general a lo ms especfico y que a su vez, estn conectados entre s.Cuando se hereda, las clases derivadas reciben las caractersticas de la clase base, pudiendo aadir supersonalidad propia en forma de nuevas caractersticas, o modificando las heredadas. El compilador hace unacopia de la clase base en la clase derivada, permitiendo al programador aadir o modificar miembros sin que la clase base sufra alteracin alguna.

Cuando una clase hereda de otra clase se denomina clase derivada, clase hija, subclase o clase descendiente. La clase de la cual hereda recibe el nombre de clase base, y en ocasiones se la conoce como clase padre, superclase o clase ascendiente.Cualquier clase puede ser una clase base, una clase puede ser clase base para ms de una clase derivada, Y a su vez, una clase derivada puede ser clase base de otras clasesLa herencia se puede usar de dos formas:1. Cuando una clase escrita no llega a cubrir las necesidades que exige un determinado problema, sepuede retocar el cdigo cambiando las caractersticas que se requieren, e ignorando el resto. Estopermite una programacin rpida. Esto es una forma de reutilizacin del cdigo.2. Se expresa un determinado problema como una jerarqua de clases, donde existe una clase base de laque se derivan otras subclases. La interfaz de la clase base es comn a todas las clases derivadas.

Dentro de los mecanismos de herencia se van a diferenciar dos tipos: La Herencia Simple. Una clase derivada tiene un slo padre. La Herencia Mltiple. Una clase derivada hereda de ms de una clase base.LA HERENCIA SIMPLEEs cuando una clase derivada hereda de una nica clase, es decir una clase derivada slo tiene un padre o ascendiente. Por su parte una clase base puede tener tantos descendientes como sean necesarios sin limitacin alguna. Es un sistema jerrquico en forma arborescente, similar a la estructura de directorios de algunos sistemasoperativos. (Como MSDOS PONER EN TARJETA )

La forma general de la herencia en C++ es:class : [] {// Cuerpo de la declaracin de la clase};El nombre_clase_heredada se refiere a una clase base declarada previamente. sta pude estar ya compilada, opuede que se declare en el mismo programa que la derivada, en este segundo caso se debe declarar la clase baseantes de la derivada, o al menos declarar el nombre de la clase base como una referencia anticipada.

VENTAJAS DE LA HERENCIAUna gran ventaja de los mecanismos de herencia es la reutilizacin del cdigo, sta permite que un programador pueda utilizar una clase como clase base de otras nuevas clases de manera muy rpida. Otra interesante caracterstica, es la extensibilidad. Esta propiedad permite que los programas sean fcilmente ampliables, as de una clase base se pueden derivar varias clases que tengan un interfaz comn, pero su realizacin y las acciones que llevan a cabo sean diferentes, as el programa principal controlar un grupo de objetos, puede utilizar una funcin miembro a cualquier objeto, pero el efecto ser diferente, dependiendo de las subclases especficas.

Ambigedades en la Herencia SimpleUna clase derivada puede tener un miembro con el mismo nombre que un miembro de la clase base. Cuandoocurre esto, y se referencia este nombre que est duplicado, el compilador asumir que se desea acceder almiembro de la clase derivada.Este hecho se conoce como anulacin, invalidacin o suplantacin7 del miembro de la clase base por el miembrode la clase derivada.

(PASAR A TARJETA)Para acceder al miembro de la clase base se deber utilizar el operador de resolucin de mbito.

Los elementos de una clase se pueden dividir en tres grupos: public: Accesibles desde cualquier funcin del programa.private: Slo pueden acceder a ellos funciones miembros de la clase, o funciones afines. protected: Slo pueden acceder a ellos las funciones miembro de la clase, de clases derivadas o lasfunciones afines.

La siguiente tabla agrupa todas las posibles combinaciones de los accesos a las secciones de una clase: Especificador deacceso

Desde la propiaclaseDesde las clases derivadas

Desde el exterior

PublicSiSisiProtectedSi SiNoPrivateSiNoNoSi se omite se supone que el acceso es private, de forma quesi se quiere dar un acceso public o protected se debe hacer explcitamente.