Vous êtes sur la page 1sur 2

Herencia

Definici�n: Clase base y Clase derivada

La herencia es una propiedad esencial de la Programaci�n Orientada a Objetos que


consiste en la creaci�n de nuevas clases a partir de otras ya existentes. Este
t�rmino ha sido prestado de la Biolog�a donde afirmamos que un ni�o tiene la cara
de su padre, que ha heredado ciertas facetas f�sicas o del comportamiento de sus
progenitores.

La herencia es la caracter�stica fundamental que distingue un lenguaje orientado a


objetos, como el C++ o Java, de otro convencional como C, BASIC, etc. Java permite
heredar a las clases caracter�sticas y conductas de una o varias clases denominadas
base. Las clases que heredan de clases base se denominan derivadas, estas a su vez
pueden ser clases bases para otras clases derivadas. Se establece as� una
clasificaci�n jer�rquica, similar a la existente en Biolog�a con los animales y las
plantas.

La herencia ofrece una ventaja importante, permite la reutilizaci�n del c�digo. Una
vez que una clase ha sido depurada y probada, el c�digo fuente de dicha clase no
necesita modificarse. Su funcionalidad se puede cambiar derivando una nueva clase
que herede la funcionalidad de la clase base y le a�ada otros comportamientos.
Reutilizando el c�digo

Clasificaci�n: Herencia simple y Herencia m�ltiple

La herencia es un mecanismo que permite la definici�n de una clase a partir de la


definici�n de otra ya existente. La herencia permite compartir autom�ticamente
m�todos y datos entre clases, subclases y objetos.
La herencia est� fuertemente ligada a la reutilizaci�n del c�digo en la POO. Esto
es, el c�digo de cualquiera de las clases puede ser utilizado sin m�s que crear una
clase derivada de ella, o bien una subclase.

Hay dos tipos de herencia: Herencia Simple y Herencia M�ltiple. La primera indica
que se pueden definir nuevas clases solamente a partir de una clase inicial
mientras que la segunda indica que se pueden definir nuevas clases a partir de dos
o m�s clases iniciales. Java s�lo permite herencia simple.

Herencia M�ltiple

Todos sabemos que la herencia es un mecanismo propio de la programaci�n orientada a


objetos POO. Nos permite crear clases a partir de otra, las cuales las unen
v�nculos sumamente estrechos, casi de familia. Es por ello que se llama herencia.

Si buscamos modelar nuestras clases u objetos como propios de la realidad, todos


los conceptos de la orientaci�n a objetos nos ser�n muy f�cil de implementar
mientras programamos.

Reutilizaci�n de miembros heredados

La reutilizaci�n de c�digo se refiere al comportamiento y a las t�cnicas que


garantizan que una parte o la totalidad de un programa inform�tico existente se
pueda emplear en la construcci�n de otro programa. De esta forma se aprovecha el
trabajo anterior, se economiza tiempo, y se reduce la redundancia.

La manera m�s f�cil de reutilizar c�digo es copiarlo total o parcialmente desde el


programa antiguo al programa en desarrollo. Pero es trabajoso mantener m�ltiples
copias del mismo c�digo, por lo que en general se elimina la redundancia dejando el
c�digo reusable en un �nico lugar, y llam�ndolo desde los diferentes programas.
Este proceso se conoce como abstracci�n. La abstracci�n puede verse claramente en
lasbibliotecas de software, en las que se agrupan varias operaciones comunes a
cierto dominio para facilitar el desarrollo de programas nuevos. Hay bibliotecas
para convertir informaci�n entre diferentes formatos conocidos, acceder a
dispositivos de almacenamiento externos, proporcionar una interfaz con otros
programas, manipular informaci�n de manera conocida (como n�meros, fechas, o
cadenas de texto).

Para que el c�digo existente se pueda reutilizar, debe definir alguna forma de
comunicaci�n o interfaz. Esto se puede dar por llamadas a una subrutina, a un
objeto, o a una clase.

Como se ha comentado anteriormente la clase descendiente puede a�adir sus propios


atributos y m�todos pero tambi�n puede sustituir u ocultar los heredados. En
concreto:

1. Se puede declarar un nuevo atributo con el mismo identificador que uno heredado,
quedando este atributo oculto. Esta t�cnica no es recomendable.

2. Se puede declarar un nuevo m�todo de instancia con la misma cabecera que el de


la clase ascendiente, lo que supone su sobreescritura. Por lo tanto, la
sobreescritura o redefinici�n consiste en que m�todos adicionales declarados en la
clase descendiente con el mismo nombre, tipo de dato devuelto y n�mero y tipo de
par�metros sustituyen a los heredados.

3. Se puede declarar un nuevo m�todo de clase con la misma cabecera que el de la


clase ascendiente, lo que hace que �ste quede oculto. Por lo tanto, los m�todos de
clase o est�ticos (declarados como static) no pueden ser redefinidos.

4. Un m�todo declarado con el modificador final tampoco puede ser redefinido por
una clase derivada.

5. Se puede declarar un constructor de la subclase que llame al de la superclase de


forma impl�cita o de mediante la palabra reservada super.

6. En general puede accederse a los m�todos de la clase ascendiente que han sido
redefinidos empleando la palabra reservada super delante del identificador del
m�todo. Este mecanismo s�lo permite acceder al metodo perteneciente a la clase en
el nivel inmediatamente superior de la jerarqu�a de clases.

Vous aimerez peut-être aussi