You are on page 1of 13

INSTITUTO DE EDUCACIN SUPERIOR TECNOLGICO PBLICO

SANTIAGO ANTNEZ DE MAYOLO

CARRERA PROFESIONAL: COMPUTACIN E INFORMATICA


MDULO PROFESIONAL: DESARROLLO DE SOFTWARE Y GESTIN DE BASE DE
DATOS
UNIDAD DIDCTICA: HERRAMIENTA DE DESARROLLO DE SOFTWARE
MONOGRAFA

HERENCIA
Presentado a la:
Mg. MARIA MAGDALENA GMEZ GALINDO
Facilitador de la unidad
Realizado por:

BEJARANO HUALLPA, Rosario


HERRERA HUISA, Brangy
INGA MACUKACHI, Daniel
CASAS DVILA, Isabel

Alumnos del III semestre


PALIAN - HUANCAYO
2015

INTRODUCCIN

La herencia hace posible crear jerarquas de clases relacionadas y reduce la cantidad de cdigo
redundante en componentes de clases. El soporte de la herencia es una de las propiedades que
diferencia los lenguajes orientados a objetos de los lenguajes basados en objetos y lenguajes
estructurados.
La herencia es la propiedad que permite definir nuevas clases usando como base clases ya existentes.
La nueva clase (clase derivada) hereda los atributos y el comportamiento que son especficos de ella.
La herencia es una herramienta poderosa que proporciona un marco adecuado para producir software
fiable, comprensible, de bajo coste, adaptable y reutilizable.

DEDICATORIA

A todas las personas que puedan hacer uso


de esta informacin para aumentar su
conocimiento acerca de lo que es
programacin.

INDICE

INTRODUCCIN.1
DEDICATORIA....2
INDICE..3
DEFINICIN.4
JERARQUA DE CLASES....5
REFINICIN DE ELEMENTOS HEREDADOS.....5
LA CLASE OBJECT.6
HERENCIA Y CONTRUCTORES...7
CASTING O MOLDES.8
CONCLUSIONES..9
RECOMENDACIONES...10
BIBLIOGRAFA...11

FUNDAMENTO TERICO
CAPITULO I
HERENCIA

1. DEFINICIN
La herencia es una propiedad que permite la declaracin de nuevas clases a partir de otras ya
existentes. Esto proporciona una de las ventajas principales de la Programacin Orientada a Objetos:
la reutilizacin de cdigo previamente desarrollado ya que permite a una clase ms especfica
incorporar la estructura y comportamiento de una clase ms general. Cuando una clase B se
construye a partir de otra A mediante la herencia, la clase B hereda todos los atributos, mtodos y
clases internas de la clase A. Adems la clase B puede redefinir los componentes heredados y aadir
atributos, mtodos y clases internas especficas. Para indicar que la clase B (clase descendiente,
derivada, hija o subclase) hereda de la clase A (clase ascendiente, heredada, padre, base o superclase)
se emplea la palabra reservada extends en la cabecera de la declaracin de la clase descendiente. La
sintaxis es la siguiente:
Public class ClaseB extends ClaseA {
// Declaracin de atributos y mtodos especficos de ClaseB
// y/o re declaracin de componentes heredados
}

2. JERARQUA DE CLASES

Java permite mltiples niveles de herencia pero no la herencia mltiple, es decir una clase slo
puede heredar directamente de una clase ascendiente. Por otro lado, una clase puede ser ascendiente
de tantas clases descendiente como se desee (un nico padre, multitud de hijos). En la Figura 1 se
muestra grficamente un ejemplo de jerarqua entre diferentes clases relacionadas mediante la
herencia.

FIGURA 1. Representacin de una jerarqua de clases relacionadas mediante la herencia


3. REDEFINICIN DE ELEMENTOS HEREDADOS
Como se ha comentado anteriormente la clase descendiente puede aadir sus propios atributos y
mtodos pero tambin 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 tcnica no es recomendable.
2. Se puede declarar un nuevo mtodo de instancia con la misma cabecera que el de la clase
ascendiente, lo que supone su sobreescritura. Por lo tanto, la sobreescritura o redefinicin consiste
en que mtodos adicionales declarados en la clase descendiente con el mismo nombre, tipo de dato
devuelto y nmero y tipo de parmetros sustituyen a los heredados.
3. Se puede declarar un nuevo mtodo de clase con la misma cabecera que el de la clase ascendiente,
lo que hace que ste quede oculto. Por lo tanto, los mtodos de clase o estticos (declarados como
static) no pueden ser redefinidos.

4. Un mtodo 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 implcita o
de mediante la palabra reservada super.
6. En general puede accederse a los mtodos de la clase ascendiente que han sido redefinidos
empleando la palabra reservada super delante del identificador del mtodo. Este mecanismo slo
permite acceder al mtodo perteneciente a la clase en el nivel inmediatamente superior de la jerarqua
de clases.
4. LA CLASE OBJECT
Independientemente de utilizar la palabra reservada extends en su declaracin, todas las clases
derivan de una superclase llamada Object. sta es la clase raz de toda la jerarqua de clases de Java
(Figura 2). El hecho de que todas las clases deriven implcitamente de la clase Object no se considera
herencia mltiple.

Figura 2. Jerarqua de clases predefinidas en Java


5. HERENCIA Y CONSTRUCTORES
La subclase necesita normalmente que se ejecute el constructor de la superclase antes que su
propio constructor para inicializar las variables de instancia heredadas. La solucin consiste en
utilizar la palabra reservada super seguida entre parntesis de los parmetros correspondiente en el
cuerpo del constructor de la subclase. Es decir, incluir la siguiente sentencia como primera lnea de
cdigo:

super(argumentos opcionales);
De esta forma la implementacin de un constructor de la clase descendiente slo necesita
inicializar directamente las variables de instancia no heredadas. Si no aparece como primera
sentencia, el compilador inserta una llamada implcita super(); que inicializa las variables de
instancia a cero, false, carcter nulo o null dependiendo de su tipo. Esta llamada en cadena a los
constructores de las clases ascendientes llega hasta el origen de la jerarqua de clases, es decir, hasta
el constructor de la clase Object. En cualquier caso, la creacin de una nueva instancia mediante un
constructor debe tener tres fases:
1. Llamada al constructor de la clase ascendiente
2. Se asignan valores a los atributos
3. Se ejecuta el resto del constructor
6. CASTING O MOLDES ENTRE OBJETOS CON RELACIN DE HERENCIA
El casting o moldeo permite el uso de un objeto de una clase en lugar de otro de otra clase con el
que haya una relacin de herencia. Por ejemplo:
Object a = new Producto ();
Entonces a es momentneamente tanto una instancia de la clase Object como Producto (hasta que
ms adelante se le asigne un objeto que no sea un Producto). A esto se le llama moldeo implcito.
Por otro lado, si se escribe:
Producto b = a;
Se obtendr un error de compilacin porque el objeto referenciado por a no es considerado por el
compilador como un Producto. Sin embargo se le puede indicar al compilador que a la referencia a se
le va a asignar obligatoriamente un Producto.
Producto b = (Producto) a;
Este moldeo explcito introduce la verificacin durante la ejecucin de que a la referencia a se le
ha asignado un Producto as que el compilador no genera un error. En el caso que durante la
ejecucin la referencia a no fuera a un Producto, se generara una excepcin. Para asegurar esta
situacin y evitar el error de ejecucin se podra emplear el operador instanceof:

if (a instanceof Producto) {
Producto b = (Producto) a;
}
7. EJERCICIO DE APLICACIN
Clase principal
package herencia5;
public class Herencia5 {
public static void main(String[] args) {
Alumno Al=new Alumno("III", "Daniel","15");
System.out.println(Al.Mostrar());
}}
Super clase o clase padre
package herencia5;
public class Persona {
String Nombre;
String Edad;

public Persona(String Nombre, String Edad) {


this.Nombre = Nombre;
this.Edad = Edad;
}
public String Mostrar(){
return "El nombre es :"+Nombre+"\nLa edad es:"+Edad;
}}
subclase
package herencia5;
public class Alumno extends Persona{
String Semestre;
public Alumno(String Semestre, String Nombre, String Edad) {
super(Nombre, Edad);
this.Semestre = Semestre;

}
@Override
public String Mostrar(){
return super.Mostrar()+"\nEl semestre es:"+Semestre;
}}

CONCLUSIONES
La herencia en la programacin es nada ms y nada menos que usar los atributos y mtodos que
ya existen, en la POO se hace heredando de la clase que contengan los elementos necesarios para tal

fin. La herencia en java (y en otros lenguajes) se declara con la palabra reservada extends
seguidamente de la clase de la cual deseemos heredar. Esto se realiza con la finalidad de reutilizar
cdigo, como tambin es la base para el implementar el polimorfismo.

RECOMENDACIONES
Si intentamos invocar un mtodo no esttico en el mtodo Main nos arrojara un error, para
solucionar este inconveniente debemos de hacer esttico el mtodo con la palabra
reservada static para poder invocarlo directamente, este mtodo esttico no solo se podra invocar en
el Main sino tambin en los dems mtodos. Adems de lo anterior no podremos heredar ms de una
vez, para esto usamos polimorfismo, pero esto es tema para otro post
Como se ve la implementacin de herencia no es difcil, lo complicado es realizar una clase bien
definida para poder usarla como base en las dems clases, as que no dudes en gastar ms tiempo en
el anlisis y formular los procesos y atributos necesarios para determinado fin.

BIBLIOGRAFIA

http://jagonzalez.org/herencia-en-java/

JaGonzalez Copyright 2015.


http://dis.um.es/~bmoros/privado/apuntes/Curso09-10/POO3-Java-0910.pdf
Garca-Beltrn y J.M. Arranz

You might also like