Con los nuevos lenguajes de alto nivel y la orientación a objetos vemos como la reutilización de código es una práctica que cada día es más común. Los negocios buscan la productividad y la necesidad de generar más resultados a menor esfuerzo. Ahora podemos ver librerías y toda clase de paquetes que son liberados para que otras personas lo usen para sus desarrollos.
La herencia es una forma como la orientación a objetos nos permite reutilizar el código. Por lo tanto no es necesario hacer un código dos veces.
En java nosotros no contamos con herencia múltiple. Lo que podemos hacer es utilizar herencia simple. Esto ocurre cuando tenemos una clase genérica con una serie de variables y métodos que pueden ser heredados a clases más especializadas. Es decir, que podemos desarrollar una súper clase que nos va permitir hacer una serie de operaciones genéricas para una seria de objetos. Cuando nosotros queremos realizar tareas más especializadas debemos de heredar de la clase padre (esta es la clase súper).
Entonces para poder entender la jerarquía de clases en java tenemos las súper clases que son las que serán heredadas y después tenemos las subclases que son las clases hijo. Pero tenemos que tener en cuenta que estas clases hijo también pueden ser heredadas. Entonces esas se van a convertir en súper clases.
Ventajas de la herencia
- El programador puede hacer que las variables y métodos de una clase existente puedan ser utilizadas en otra clase.
- El código puede ser reutilizable
- Las clases que heredan pueden convertirse en sub clases y de esa manera también compartir métodos y variables con clases inferiores.
- Cada clase podría convertirse en una súper clase
- El código publico, friendly o protected de las super clases será visto por las subclases de manera automática.
- La clase padre se puede modificar en las subclases.
En java tenemos diferentes formas de control de acceso a los miembros de las clases. Con estos controles de acceso podemos definir qué y cómo las otras clases pueden ver y/o utilizar todos los componentes de las súper clases. Con esto podemos restringir los métodos que no deberían ser utilizado por las clases más especificas y que estas solo utilicen los componentes que realmente necesita.
Private: Las variables y los métodos no serán visibles para ninguna clase. Estos solo pueden ser accedidos por las clases que los crear.
Protected: Las variables y los métodos serán visibles únicamente para las subclases y las clases del mismo paquete.
Public : Las variables como los métodos serán visibles en todas las clases.
Frienly: Las variables y métodos son creados con este control de acceso por defecto y cumple un papel como el de protected.
|
Clase
|
SubClase
|
Paquetes
|
Todos
|
Private
|
X
|
|
|
|
Protected
|
x
|
X
|
X
|
|
Friendly
|
x
|
x
|
x
|
X
|
Public
|
x
|
x
|
x
|
X
|
Utilización de la referencia this
• Permite hacer referencia a objetos en el que nos encontramos.
• Invocar objetos de la clase actual
• Se puede obtener la referencia de la clase actual.
• Se puede invocar entre constructores.
public class persona {
public int id;
public int edad;
-
public persona(final int id,final int edad)
{
this.id=id;
this.edad=edad;
}
-
}
Utilización método super
• Hace referencia a la instanciaa de la clase de la que se esta heredando.
• Se puede reutilizar el comportamiento anterior al invocarlo con esta palabra reservada.
• Se utiliza super.nombredemetodo
public class profesor extends persona
{
private String codigoProfesor;
public profesor
(final int id,
final int edad,
final String codigoProfesor
)
{
super(id,edad);
this.codigoProfesor=codigoProfesor;
}
}
-->
Etiquetas: Java