0% encontró este documento útil (0 votos)
229 vistas5 páginas

Cuál Es El Orden de Ejecución de Los Constructores y Destructores en Las Clases Derivadas

El orden de ejecución de constructores y destructores en clases derivadas sigue un patrón. Los constructores se ejecutan desde la clase base hasta la derivada, inicializando las variables heredadas, mientras que los destructores se ejecutan en orden inverso, desde la derivada hasta la base, liberando los recursos asignados.
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descargue como DOCX, PDF, TXT o lea en línea desde Scribd
Descargar como docx, pdf o txt
0% encontró este documento útil (0 votos)
229 vistas5 páginas

Cuál Es El Orden de Ejecución de Los Constructores y Destructores en Las Clases Derivadas

El orden de ejecución de constructores y destructores en clases derivadas sigue un patrón. Los constructores se ejecutan desde la clase base hasta la derivada, inicializando las variables heredadas, mientras que los destructores se ejecutan en orden inverso, desde la derivada hasta la base, liberando los recursos asignados.
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descargue como DOCX, PDF, TXT o lea en línea desde Scribd
Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1/ 5

Cuál es el orden de ejecución de los constructores y destructores en las

clases derivadas
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.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace constructorydestructorclasederivada
{
public class escuela
{
public string nombre;
public string direccion;
public string cedula;

//contructor
public escuela(string nombre, string direccion, string cedula)
{

this.nombre = nombre;
this.direccion = direccion;
this.cedula = cedula;
}

public void muestraNombre()


{
Console.WriteLine("Apellido es : ", this.direccion);
Console.WriteLine("correo es : ", this.cedula);
}
~escuela()
{
Console.WriteLine("Datos destruidos");
}
}
public class persona
{
string nombre;
string apellido;
string correo;
//contructor
public persona(string nombre, string apellidos, string correo)
{

this.nombre = nombre;
this.apellido = apellidos;
this.correo = correo;
}

public void muestraNombre(string nombre, string apellido, string correo)


{
Console.WriteLine("Nombre es : " + nombre);
Console.WriteLine("apellido es : " + apellido);
Console.WriteLine("correo es : " + correo);
}
~persona()
{
Console.WriteLine("Datos destruidos");
}
}
class program
{
static void Main(string[] args)
{
Console.WriteLine("Nombre de la Persona");
string nombre = Console.ReadLine();
Console.WriteLine("Apellido de la Persona");
string apellido = Console.ReadLine();
Console.WriteLine("Correo de la Persona");
string correo = Console.ReadLine();

persona Persona = new persona(nombre, apellido, correo);


Persona.muestraNombre(nombre, apellido, correo);
}
}
}
https://sites.google.com/site/wwwprogramacionorientadacom/35-constructores-y-
destructores-en-clases-derivadas

También podría gustarte