DE .NET, SQLSERVER Y MÁS, APRENDE CONMIGO!✔

Desarrollo de todo tipo de aplicaciones y Administración de Base de datos con Tecnología Microsoft


UNETE

Herencia en los constructores

0

 


Herencia en los constructores:

Herencia: Es la propiedad de la programacion orientada a objetos (POO) que en parte permite la modificacion del comportamiento de un objeto.

Ese es el concepto que has entendido bien hasta ahora.

Supongamos que tengamos la siguiente clase:

public class Cosa

{

    public Cosa(string nombre)

    {

        Nombre = nombre;

    }

    public string Nombre { get; private set; }

}

Definimos el constructor de la clase Cosa y tenemos una propiedad comun llamada Nombre, pero, la clase no es capaz de hacer nada por si sola, es entonces que se procede a heredar de las clases como esta, heredemosla:

 

public class Televisor : Cosa

{

    public int Canal { get; set; }

    public Televisor() : base("Televisor")

    {

        Canal = 1; // Ajustamos el TV para estar en el canal 1.

    }

}

En este ejemplo he hecho lo mismo que en el caso que preguntas, si te fijas, en el constructor de Televisor() he puesto a su lado : base("Televisor"), esto es para que se llame al constructor de Cosa(string) antes de realizar las acciones del constructor de la clase Television, como mencione arriba, es como aplicar la herencia a una funcion; al utilizar la palabra clave base, se puede especificar cualquier metodo que produzca el comportamiento de la clase principal, por lo que con un base.NombreDelMetodo() basta para realizarlo en cualquier otro metodo.

Si hacemos dentro del constructor de Television lo siguiente:

 

public Television() : base("Television")

{

    // resto del codigo

    System.Console.WriteLine(Nombre);

}

Imprimira "Television", debido a que ya ajustamos el constructor de la clase madre, base o "superclase" (Como quieras llamarlo) para que realice las acciones necesarias.

Dentro de este campo, C# incluye clases abstractas y funciones virtuales, con el objetivo de que puedas hacer tu objeto aun mas abstracto, pero todo depende de lo que se necesites.


DEMOSTRACIÓN

Crearemos una aplicación de consola y ejecutaremos el siguiente código:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

 

namespace Herencia3

{

    public class A

    {

        public A()

        {

            Console.WriteLine("Constructor de la clase A");

        }

    }

 

    public class B : A

    {

        public B()

        {

            Console.WriteLine("Constructor de la clase B");

        }

    }

 

    public class C : B

    {

        public C()

        {

            Console.WriteLine("Constructor de la clase C");

        }

    }

 

    class Prueba

    {

        static void Main(string[] args)

        {

            C obj1 = new C();

            Console.ReadKey();

        }

    }

}

El resultado:




Tal vez te interesen estas entradas

No hay comentarios