Herencia, polimorfismo, sobrecarga y sobre-escritura
Es una forma de reutilización de software en la que se crea una nueva clase al absorber los miembros de una ya existente, siendo esta la principal ventaja del proceso de herencia.
Existen dos tipos de clases:
La Subclase hereda todo los atributos y métodos que fueron definidos en la Superclase. Si necesitamos cambiar algún método, se puede sobrescribir el comportamiento en nuestra subclase; utilizando el mismo nombre y los mismos argumentos del método que se encuentra en la Superclase. O bien si se requiere crear un nuevo método lo podemos incluir en nuestra subclase.
Aunque una subclase hereda todos los miembros de la superclase, incluidos los privados, no tiene acceso directo a éstos, puesto que private significa privado a la clase o lo que es lo mismo, solamente accesibles desde el interior de ésta.
Cada vez que Java crea un objeto de una clase, antes de ejecutarse el constructor de dicha clase se ejecutará primero el de su superclase.
El modificador protected, es un modificador de acceso aplicable a atributos y métodos de una clase, pensado para ser utilizado con la herencia. Es importante subrayar que las subclases acceden a los miembro protegidos a través de la herencia, no se puede utilizar una referencia a un objeto de la superclase para acceder al miembro protegido. Si queremos evitar que una clase sea heredada por otra, deberá ser declarada con el modificador final.
Reglas básicas para la herencia en Java:
- La palabra clave para la herencia es “extends”
- No está permitida la herencia múltiple.
- Si es posible la herencia multinivel, es decir, A puede ser heredada por B y C puede heredar de B.
- Una clase puede ser heredada por varias clases.
Esta herramienta es útil al momento de igualar variables, gracias a la capacidad de almacenaje que posee la clase padre con sus hijos, será posible crear arreglos de objetos que combinen a la superclase y subclases.
Para que un método pueda sobrecargarse es imprescindible que se cumpla la siguiente condición: cada versión del método debe distinguirse de las otras en el número, tipo u orden de los parámetros, mientras que el tipo de devolución puede o no ser el mismo, dado esto es importante destacar que si se crea un procedimiento y una función con el mismo nombre (sobrecarga) y con la misma cantidad y tipo de parámetros, el programa arrojará un error, ya que JAVA se guía por la cantidad de parámetros que tenga tu constructor o tus métodos y los tipos de datos.
No existe sobrecarga si los métodos no están dentro de la misma clase, como hemos visto anteriormente, los constructores son métodos especiales, por lo cual es posible tener constructores sobrecargados.
Esta herramienta permite modificar atributos o métodos heredados para de esta forma ser usados por la clase hija, según sus necesidades. Es importante dejar claro que no es lo mismo sobrecarga de métodos que sobre escritura de miembros, ya que para que exista sobrecarga los métodos deben estar dentro de la misma clase, mientras que la sobre-escritura se da partiendo de una relación de herencia, otra diferencia fundamental entre estos dos términos que se suelen confundir, ya que no puede haber sobre-escritura sin herencia.
- La palabra clave para realizar sobre-escritura es “override”.
- Si existe herencia pero no sobre-escritura de cierto método, entonces el que se ejecutará será el de la Superclase.
- Es posible sobre-escribir un método y luego sobrecargarlo.
Comentarios
Publicar un comentario