Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
6. HERENCIA<br />
La her<strong>en</strong>cia es una forma <strong>de</strong> reutilización <strong>de</strong>l software, <strong>en</strong> la cual se crean clases<br />
nuevas a partir <strong>de</strong> clases exist<strong>en</strong>tes, mediante la absorción <strong>de</strong> sus atributos y<br />
comportami<strong>en</strong>tos, y embelleci<strong>en</strong>do éstos con las capacida<strong>de</strong>s que las clases nuevas<br />
requier<strong>en</strong>.<br />
Al crear una clase nueva, <strong>en</strong> vez <strong>de</strong> escribir <strong>en</strong> su totalidad miembros <strong>de</strong> datos y<br />
funciones miembro nuevos, el programador pue<strong>de</strong> <strong>de</strong>terminar que la clase nueva <strong>de</strong>be<br />
heredar los miembros <strong>de</strong> datos y las funciones miembro prov<strong>en</strong>i<strong>en</strong>tes <strong>de</strong> una clase base<br />
ya <strong>de</strong>finida. La clase nueva se conoce como clase <strong>de</strong>rivada.<br />
La her<strong>en</strong>cia forma estructuras jerárquicas <strong>de</strong> apari<strong>en</strong>cia arboresc<strong>en</strong>te. Una clase base<br />
existe <strong>en</strong> una relación jerárquica con sus clases <strong>de</strong>rivadas.<br />
Mediante la her<strong>en</strong>cia única, una clase es <strong>de</strong>rivada <strong>de</strong> una única clase base. Con la<br />
her<strong>en</strong>cia múltiple una clase <strong>de</strong>rivada hereda <strong>de</strong> múltiples clases base.<br />
En <strong>C++</strong>, ''hereda <strong>de</strong>'' se reemplaza por dos puntos ( : ). Luego, la sintaxis para escribir<br />
una clase <strong>de</strong>rivada es:<br />
Ejemplo:<br />
class tipo_clase_<strong>de</strong>rivada: (public/private/protected) tipo_clase_base { };<br />
class Puntos3D : public Punto<br />
{<br />
int _z;<br />
public:<br />
Puntos3D ( )<br />
{<br />
setX(0);<br />
setY(0);<br />
_z = 0;<br />
}<br />
Puntos3D (const int x, const int y, const int z)<br />
{<br />
setX(x);<br />
setY(y);<br />
_z = z;<br />
}<br />
∼ Puntos3D( ) { /* Nada que hacer */}<br />
int getZ( ) { return _z;}<br />
void setZ ( const int val) { _z = val;}<br />
};