- Back to Home »
- Reutilización de miembros heredados.
Postado Por:
Alma Esqueda
sábado, 7 de noviembre de 2015
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.
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.
"La re-utilización de software reduce el tiempo de desarrollo de los programas"
Los
diseñadores que trabajan en proyectos de software a gran escala en la
industria, las personas experimentadas con esos proyectos dicen que la
re-utilización efectiva del software mejora el proceso de desarrollo del mismo. La
programación orientada a objetos facilita la re-utilización de software, con lo
que se obtiene una potencial reducción en el tiempo de desarrollo.
La
disponibilidad de bibliotecas de clases extensas y útiles produce los máximos beneficios
de la re-utilización de software a través de la herencia. Los diseñadores de
aplicaciones crean sus aplicaciones con estas bibliotecas, y los diseñadores de
bibliotecas obtienen su recompensa al incluir sus bibliotecas con las
aplicaciones. Las bibliotecas de clases estándar de Java que se incluyen con
Java SE 6 tienden a ser de propósito general.
Así
como los diseñadores de sistemas no orientados a objetos deben evitar la
proliferación de métodos, los diseñadores de sistemas orientados a objetos
deben evitar la proliferación de clases. Dicha proliferación crea problemas administrativos
y puede obstaculizar la re-utilización de software, ya que en una biblioteca de
clases enorme es difícil para un cliente localizar las clases más apropiadas.
La alternativa es crear menos clases que proporcionen una funcionalidad más
substancial, pero dichas clases podrían volverse complejas.