Está en la página 1de 13

UNIVERSIDAD ISRAEL

CIENCIAS DE LA INGENIERÍA

CARRERA DE SISTEMAS DE INFORMACIÓN

PLATAFORMAS DE DESARROLLO 1

SEMESTRE 2021 B

LABORATORIO S3

TEMA: Herencia en C#

PROFESOR: Mg. Luis Fernando Aguas Bucheli

QUITO, 2021
Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información

1. TEMA: Herencia en C#

2. OBJETIVOS:

• Adquirir los conceptos básicos relacionados con Visual Studio


• Reconocer las características de Visual Studio

3. OBJETIVOS DE DESARROLLO SOSTENIBLE:

Indicador 4.3: De aquí a 2030, asegurar el acceso igualitario de todos los hombres y las mujeres
a una formación técnica, profesional y superior de calidad, incluida la enseñanza universitaria

4. INTRODUCCION:

La herencia es uno de los conceptos más importantes de la Programación Orientada a Objetos


(POO) y uno de los fundamentos sobre los cuales está construido C#. Herencia se refiere a la
capacidad de crear clases que heredan ciertos aspectos de otras clases primarias. Todo el
framework de .NET se basa en el concepto de Herencia y por esto en .NET "todo es un objeto".
Incluso un simple número es una instancia de una clase que se hereda de la clase System.Object,
aunque .NET haga un poco de trampa acá para facilitar la vida de los usuarios y por esto se puede
asignar un número directamente, sin tener que crear una nueva instancia de cada número que
se vaya a usar.

La Herencia puede ser un aspecto difícil de comprender, así que comencemos con unos ejemplos
simples:

Download sample code


public class Animal
{
public void Greet()
{
Console.WriteLine("Hello, I'm some sort of animal!");
}
}

public class Dog : Animal


{
Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información

}
Primero, definimos una clase llamada Animal, con un método llamado Greet el cual imprime un
saludo en la consola. Luego definimos una clase de perro, y con el operador dos puntos ':' le
decimos a C # que la clase de perro hereda de la clase de animal. Lo elegante de este método es
que tiene sentido en el mundo real: un perro ES un animal. Intentemos usar las clases:

Animal animal = new Animal();


animal.Greet();
Dog dog = new Dog();
dog.Greet();

Si corres este ejemplo, notarás que aunque no hayamos definido un método Greet() para la clase
Dog, todavía sabe cómo saludarnos, ya que hereda este método de la clase Animal. Sin embargo,
este saludo es un poco genérico, por lo que vamos a personalizarlo cuando definamos qué
animal es:

Download, Edit & Run this example!


public class Animal
{
public virtual void Greet()
{
Console.WriteLine("Hello, I'm some sort of animal!");
}
}

public class Dog : Animal


{
public override void Greet()
{
Console.WriteLine("Hello, I'm a dog!");
}
}
Aparte del método Greet() en la clase Dog, debes notar dos cosas: en la clase Animal he agregado
la palabra reservada "virtual" y en la clase Dog uso la palabra reservada "override"

En C#, no esta permitido sobreescribir un miembro de una clase a menos que este marcado
como virtual. Sí quieres, puedes aun así acceder al método heredado, incluso después de sobre
escribirlo, usando la palabra clave "base".

public override void Greet()


{
base.Greet();
Console.WriteLine("Yes I am - a dog!");
}
Sin embargo los métodos no son lo único que se hereda. De hecho, casi todos los miembros de
la clase serán heredados, incluidos los campos y las propiedades. Sólo recuerda las reglas de
visibilidad, como se discutió en un capítulo anterior.
Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información

Se puede tener toda una jerarquía de clases que hereden una de la otra. Por ejemplo, podríamos
crear una clase Puppy que hereda de nuestra clase Dog que a su vez hereda de la clase Animal.
Lo que no puede hacer en C # es que una clase herede de más de una clase al mismo tiempo. La
herencia múltiple, como es conocida, no es compatible con C#.

5. DESARROLLO:

Ingresamos al visual studio:

Seleccionamos Crear un proyecto


Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información

En buscar plantillas seleccionamos:

Colocamos como nombre del proyecto:


Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información

Teniendo:

Creamos una nueva clase:


Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información

Teniendo:

Colocamos el siguiente código:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información

using System.Threading.Tasks;

namespace HerenciaS32021B
{
public class Persona
{
protected string nombre;
protected int edad;

public string Nombre


{
set
{
nombre = value;
}
get
{
return nombre;
}
}

public int Edad


{
set
{
edad = value;
}
get
{
return edad;
}
}

public void Imprimir()


{
Console.WriteLine("Nombre: " + Nombre);
Console.WriteLine("Edad: " + Edad);
}
}
}

Teniendo:
Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información

Creamos otra clase:

Teniendo:
Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información

Colocamos el siguiente código:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HerenciaS32021B
{
public class Empleado : Persona
{
protected float sueldo;

public float Sueldo


{
set
{
sueldo = value;
}
get
{
return sueldo;
}
}

new public void Imprimir()


{
base.Imprimir();
Console.WriteLine("Sueldo: " + Sueldo);
}
}
}

Teniendo:
Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información

En Program.cs colocamos:

Persona persona1 = new Persona();


persona1.Nombre = "Juan";
persona1.Edad = 25;
Console.WriteLine("Los datos de la persona son: ");
persona1.Imprimir();

Empleado empleado1 = new Empleado();


empleado1.Nombre = "Maria";
empleado1.Edad = 42;
empleado1.Sueldo = 2524;
Console.WriteLine("Los datos del empleado son: ");
empleado1.Imprimir();

Console.ReadKey();

Teniendo:
Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información

Compilamos y Ejecutamos:

6. BIBLIOGRAFIA:
Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información

También podría gustarte