UNIVERSIDAD NACIONAL AUNTONOMA DE NICARAGUA UNAN-LEÒN FACULTAD DE CIENCIA Y TECNOLOGIA Carrera: Ingeniería en Tecnologías de la Información y Comunicación con Énfasis en Desarrollo Web y Marketing Digital Componente: Técnica de Programación Orientada a Objetos II Temática: Ejercicio Propuesto – Herencia en C # Docente: Msc. Juan Carlos Antón Integrante: Grupo “B” Tomás Antonio Silva Paiz Fecha: 23 de Noviembre de 2020 León, Nicaragua ENUNCIADO DEL PROBLEMA La clase Animal es una clase con cuatro atributos miembros protected: 1. Un String indicando la especie (león, águila, abeja), 2. Un String indicando el nombre del animal concreto (Simba, Maya, RinTinTin). 3. Un double indicando el peso el kg. 4. Un int indicando el número de jaula que se asigna al animal. Además, la clase Animal declara un método virtual queClaseDeAnimalEres() que habrá que definir en las clases derivadas. La clase Mamifero no añade nuevos atributos miembro, aunque deberá implementar el método queClaseDeAnimalEres(). La clase Ave tiene dos nuevos atributos protected: A. Un String colorPlumaje indicando el color predominante y B. Un double indicando la alturaMaximaVuelo. La clase Insecto tiene un nuevo atributo miembro protected de tipo boolean llamada vuela que indica si el insecto vuela o no. Para realizar este ejercicio se pide lo siguiente: A. Crear las cuatro clases indicadas, con los correspondientes constructores y sobre carga de constructores, Como ayuda, se indica que el orden de los argumentos en el constructor parametrizado de la clase base es: public Animal(String especie, String nombre, double peso, int jaula){...} B. Definir los métodos llamados queClaseDeAnimalEres( ) en cada una de las clases derivadas de Animal. Este método no tiene valor de retorno (es void) ni argumentos. Debe ser capaz de mostrar por la pantalla la información correspondiente al animal de que se trate (ver el ejemplo), utilizando para ello la información almacenada en las variables miembro. CODIGO FUENTE Animal.cs using System; namespace MAnimal { class Animal//Clase Base { // Atributos protegidos solo son visibles en las clases derivadas. protected string especie; protected string nombre; protected double peso; protected int jaula; // Los miembros públicos son visibles en las clases derivadas //y forman parte de la interfaz pública de dichas clases. // Complete las propiedades public string Especie { } public string Nombre { } public double Peso { } public int Jaula { } //Constructor por omisión (sin parámetros) de la clase base public Animal() { Console.WriteLine("DATOS DEL ANIMAL : "); Console.Write("Nombre : "); Nombre = Console.ReadLine(); Console.Write("Especie: "); Especie = Console.ReadLine(); Console.Write("Peso en kg: "); Peso = double.Parse(Console.ReadLine()); Console.Write("No de Jaula: "); Jaula = int.Parse(Console.ReadLine()); } //Constructor con parámetros COMPLETE public Animal(string espe, string nom, double pes, int jaul) { } //Método puede ser Invalidado por una clase derivada porque está marcado como **virtual** public virtual void QueclasedeanimalES() { Console.WriteLine("Soy un mamifero llamado: " + Nombre); Console.WriteLine("de la especie: " + Especie); Console.WriteLine("Peso en kg: " + Peso); Console.WriteLine("Estoy en la jaula: " + Jaula); } } } Mamifero.cs using System; namespace MAnimal { class Mamifero : Animal //Clase Mamifero derivada de la Clase Base **Animal** { // Atributos protegidos solo son visibles en las clases derivadas. protected string tipoMamifero; // Los miembros públicos son visibles en las clases derivadas //y forman parte de la interfaz pública de dichas clases. public string TipoManifero { get { return tipoMamifero; } set { tipoMamifero = value; } } //Constructor que llama a la versión de la clase base antes de ejecutar su código COMPLETELO public Mamifero(string espe, string nom, double pes, int jaul) : base(espe,nom,p es,jaul) { } //Se invalida el método definido en la clase base con el objetivo de redifinir o reutilizarlo COMPLETELO public override void QueclasedeanimalES() { Console.ReadKey(); } } } Ave.cs using System; namespace MAnimal { class Ave : Animal //Clase Ave derivada de la Clase Base **Animal** { // Atributos protegidos solo son visibles en las clases derivadas. protected string colorplumaje; protected double alturamaximavuelo; // Los miembros públicos son visibles en las clases derivadas //y forman parte de la interfaz pública de dichas clases. public string Colorplumaje { } public double Alturamaximavuelo { } //Constructor que llama a la versión de la clase base**Animal** antes de ejecutar su código public Ave(string espe, string nom, double pes, int jaul) : base(espe, nom, pes, ja ul) { } //Se invalida el método definido en la clase base con el objetivo de redifinir o reutilizarlo public override void QueclasedeanimalES() { } } } Insecto.cs using System; namespace MAnimal { class Insecto : Animal//Clase Insecto derivada de la Clase Base **Animal** { // Atributos protegidos solo son visibles en las clases derivadas. protected bool vuela; // Los miembros públicos son visibles en las clases derivadas //y forman parte de la interfaz pública de dichas clases. public bool Vuela { } //Constructor que llama a la versión de la clase base **Animal** antes de ejecutar su código public Insecto(string especie, string nombre, double peso, int jaula) : base(especie, nombre, peso, jaula) { int valor = 0; Console.WriteLine("Vuela Si=1 ó No=0: "); valor = int.Parse(Console.ReadLine()); if (valor == 1) Vuela = true; else Vuela = false; } //Se invalida el método definido en la clase base con el objetivo de redifinir o reutilizarlo public override void QueclasedeanimalES() { } } } Program.cs using System; namespace MAnimal { class Program { public static void Main(string[] args) { // Haga uso de un menu de opciones para darle vida a su programa y actue de manera normal int OpcionMENU; do { // Opciones del MENU Console.Clear(); Console.Write("Menu de Opciones: \n" + "1.- Datos del Mamifero\n" + "2.- Datos de la Ave\n" + "3.- Datos del Insecto \n" + "4.- SALIR==>>: "); OpcionMENU = Convert.ToInt32(Console.ReadLine()); switch (OpcionMENU) { case 1: break; case 2: break; case 3: break; case 4: break; default: Console.WriteLine("Ingrese una OPCION VALIDA"); break; } } while (OpcionMENU != 4); } } }