Constructores en clases derivadas
Al
instanciar objetos de clases derivadas se inicia una cadena de
invocaciones a constructores en las cuales el constructor de la clase
derivada, antes de realizar sus propias tareas, invoca (ya sea implícita
o explícitamente) al constructor de su clase base. Similarmente, si la
clase base fue derivada de otra clase, el constructor de la clase base
debe invocar al constructor de la clase ubicada en el siguiente nivel
superior de la jerarquía, y así sucesivamente. El último constructor
invocado en la cadena es el constructor de la clase Object, cuyo cuerpo
se ejecuta primero. El cuerpo del constructor de la clase derivada se
ejecuta al final. El constructor de cada clase base inicializa las
variables de instancia que el objeto de la clase derivada hereda.
Destructores en clases derivadas
Cuando
remueve de la memoria un objeto de una clase derivada, el recolector de
basura invoca al destructor del objeto. Esto inicia una cadena de
invocaciones a destructores, en donde el destructor de la clase derivada
y los destructores de las clases bases directas e indirectas se
ejecutan en orden inverso al que se ejecutaron los constructores, esto
es, primero se ejecuta el destructor de la clase derivada y al final se
ejecuta el destructor de la clase base ubicada en el nivel superior de
la jerarquía. La ejecución de los destructores debe liberar todos los
recursos que el objeto adquirió, antes de que el recolector de basura
reclame la memoria de ese objeto. Cuando el recolector de basura invoca
al destructor de un objeto de una clase derivada, ese destructor realiza
su tarea y después invoca al destructor de la clase base. El proceso se
repite hasta que se invoca al destructor de la clase Object.
No hay comentarios:
Publicar un comentario