Vous êtes sur la page 1sur 5

LA HERENCIA

A. Introduccin
La verdadera potencia de la programacin orientada a objetos radica en su capacidad
para reflejar la abstraccin que el cerebro humano realiza automticamente durante el
proceso de aprendizaje y el proceso de anlisis de informacin.
Las personas percibimos la realidad como un conjunto de objetos interrelacionados.
Dichas interrelaciones, pueden verse como un conjunto de abstracciones y
generalizaciones que se han ido asimilando desde la niez. s!, los defensores de la
programacin orientada a objetos afirman que esta t"cnica se adecua mejor al
funcionamiento del cerebro humano, al permitir descomponer un problema de cierta
magnitud en un conjunto de problemas menores subordinados del primero.
La capacidad de descomponer un problema o concepto en un conjunto de objetos
relacionados entre s!, y cuyo comportamiento es fcilmente identificable, puede ser muy
#til para el desarrollo de programas informticos.
B. Jerarqua
La herencia es el mecanismo fundamental de relacin entre clases en la orientacin a
objetos. $elaciona las clases de manera jerrquica% una clase padre o superclase sobre
otras clases hijas o subclases.
Imagen 4: Ejemplo de otro rbol de herencia
Los descendientes de una clase heredan todas las variables y m"todos que sus
ascendientes hayan especificado como heredables, adems de crear los suyos propios.
La caracter!stica de herencia, nos permite definir nuevas clases derivadas de otra ya
e&istente, que la especializan de alguna manera. s! logramos definir una jerarqu!a de
clases, que se puede mostrar mediante un rbol de herencia.
'n todo lenguaje orientado a objetos e&iste una jerarqu!a, mediante la que las clases se
relacionan en t"rminos de herencia. 'n (ava, el punto ms alto de la jerarqu!a es la clase
Object de la cual derivan todas las dems clases.
C. Herencia mltiple
'n la orientacin a objetos, se consideran dos tipos de herencia, simple y m#ltiple. 'n el
caso de la primera, una clase slo puede derivar de una #nica superclase. )ara el
segundo tipo, una clase puede descender de varias superclases.
'n (ava slo se dispone de herencia simple, para una mayor sencillez del lenguaje, si
bien se compensa de cierta manera la ine&istencia de herencia m#ltiple con un concepto
denominado interface, que estudiaremos ms adelante.
D. Declaracin
)ara indicar que una clase deriva de otra, heredando sus propiedades *m"todos y
atributos+, se usa el t"rmino extends, como en el siguiente ejemplo,
public class SubClase extends SuperClase {
// Contenido de la clase
}
)or ejemplo, creamos una clase MiPunto3D, hija de la clase ya mostrada MiPunto,
class MiPunto3D extends MiPunto {
int z;
MiPunto3D( ) {
x = 0; // eredado de MiPunto
! = 0; // eredado de MiPunto
z = 0; // "ue#o atributo
}
}
La palabra clave extends se utiliza para decir que deseamos crear una subclase de la
clase que es nombrada a continuacin, en nuestro caso MiPunto3D es hija de MiPunto.
E. Limitaciones en la herencia
-odos los campos y m"todos de una clase son siempre accesibles para el cdigo de la
misma clase.
)ara controlar el acceso desde otras clases, y para controlar la herencia por las subclase,
los miembros *atributos y m"todos+ de las clases tienen tres modificadores posibles de
control de acceso,
public, Los miembros declarados public son accesibles en cualquier lugar en que
sea accesible la clase, y son heredados por las subclases.
priate, Los miembros declarados priate son accesibles slo en la propia clase.
protected, Los miembros declarados protected son accesibles slo para sus
subclases
)or ejemplo,
class Padre { // ereda de $b%ect
// &tributos
pri#ate int nu'ero(a#orito) nacidoace) dineroDisponible;
// M*todos
public int +et&puesta() {
return nu'ero(a#orito;
}
protected int +et,dad() {
return nacidoace;
}
pri#ate int +etSaldo() {
return dineroDisponible;
}
}
class i%a extends Padre {
// De-inici.n
}
class /isita {
// De-inici.n
}
'n este ejemplo, un objeto de la clase !ija, hereda los tres atributos *numero"aorito,
nacido!ace y dineroDisponible+ y los tres m"todos * get#puesta$%, getEdad$% y
get&aldo$% + de la clase Padre, y podr invocarlos. .uando se llame al m"todo
getEdad$% de un objeto de la clase !ija, se devolver el valor de la variable de instancia
nacido!ace de ese objeto, y no de uno de la clase Padre.
/in embargo, un objeto de la clase !ija, no podr invocar al m"todo get&aldo$% de un
objeto de la clase Padre, con lo que se evita que el !ijo conozca el estado de la cuenta
corriente de un Padre.
La clase 'isita, solo podr acceder al m"todo get#puesta$%, para averiguar el n#mero
favorito de un Padre, pero de ninguna manera podr conocer ni su saldo, ni su edad
*ser!a una indiscrecin, 0no1+.
F. La clase !"ect
La clase Object es la superclase de todas las clases da (ava. -odas las clases derivan,
directa o indirectamente de ella. /i al definir una nueva clase, no aparece la clusula
extends, (ava considera que dicha clase desciende directamente de Object.
La clase Object aporta una serie de funciones bsicas comunes a todas las clases,
public boolean e(uals$ Object obj %, /e utiliza para comparar, en valor, dos
objetos. Devuelve true si el objeto que recibe por parmetro es igual, en valor,
que el objeto desde el que se llama al m"todo. /i se desean comparar dos
referencias a objeto se pueden utilizar los operadores de comparacin 22 y 32.
public int hash)ode$%, Devuelve un cdigo hash para ese objeto, para poder
almacenarlo en una !ashtable.
protected Object clone$% thro*s )lone+ot&upportedException: Devuelve una
copia de ese objeto.
public final )lass get)lass$%, Devuelve el objeto concreto, de tipo )lass, que
representa la clase de ese objeto.
protected oid finali,e$% thro*s -ro*able, $ealiza acciones durante la recogida
de basura.

Vous aimerez peut-être aussi