Vous êtes sur la page 1sur 9

Herencia

Ing. Jorge Butler


Concepto
Mecanismo que permite la definicin de
una clase a partir de la definicin de otra
ya existente.
La herencia permite el refinamiento o
especializacin de una clase existente:
Se pueden definir los miembros
Se pueden ocultar los miembros
Se pueden aadir nuevos miembros
Jerarquas de clases
La herencia organiza las clases en una
estructura jerrquica:






Puede existir una clase raz en la jerarqua
de la cual heredan las dems directa o
indirectamente.
PUBLICACION
LIBRO REVISTA
LIBRO_TEXTO
INVESTIGACION
MAGAZINE
FIGURA
POLIGONO CIRCULO
RECTANGULO
B hereda de A
C hereda de B y A

B y C son descendientes (subclases) de A
B es un descendiente directo de A
C es un descendiente indirecto de A
A
B
C
B hereda de A
B es descendiente de A (Eiffel)
A es un ascendiente de B (Eiffel)
B es subclase de A (Java)
A es superclase de B (Java)
B es una clase derivada de A (C++)
A es la clase base de B (C++)
Terminologa
Proceso transitivo
Trabajando con Herencia

Para expresar una clase heredada en Java se utiliza la palabra
reservada extends:

class nombre_clase extends nombre_superclase {
cuerpo_de_la_clase
}
Variable super
Representa la referencia interna implcita
a la clase base (superclase).
Super permite acceder, desde la subclase,
a los mtodos y las variables de la
superclase.
El uso de super es opcional pero, en caso
de utilizarse, ha de ser obligatoriamente la
primera sentencia del constructor
Variable super
public class Subclase extends Superclase {
public Subclase(int x, int y, int z){
super (x, y); //variables de la superclase
this.z = z; //variable de la subclase
}
}
Tipos de herencia
Herencia simple
Una clase puede heredar de
una nica clase.
Ejemplo: Java

Herencia mltiple
Una clase puede heredar de
varias clases.
Clases forman un grafo dirigido
aciclco
Ejemplos: Eiffel, C++
A
E D
C B
A
B C
Tipos de herencia
En Java slo se dispone de herencia
simple, para una mayor sencillez del
lenguaje, si bien se compensa de cierta
manera la inexistencia de herencia
mltiple con un concepto denominado
interface.

Vous aimerez peut-être aussi