Ya no se que hacer con el error que me da :S
using System;
using System.Collections.Generic;
using System.Text;
namespace Herencia
{
class prog
{
public class Animal
{
//CLASSE PADRE
private string color;
public Animal()
{
color = "Azul";
}
public virtual void HacerSonido()
{
//PONEMOS EL VIRTUAL PARA QUE SE PUEDA CREAR UN NUEVO OBJETO
DE HACER SONIDO
//CON LA PALABRA NEW
Console.Out.WriteLine("???");
}
public string Color
{
get { return color; }
//EL VALUE COJER EL VALOR ASIGNADO EN OTRA CLASE HIJA
set { color = value; }
}
}
public class Gato : Animal
{
//BASE PARA COJER LA ANTERIOR CLASSE
public Gato()
{
Color = "Negro";
}
public new void HacerSonido()
{
Console.Out.WriteLine("MEOOW");
}
}
public class Leon : Gato
{
//EN BASE A LA CLASSE ANTERIOR
public Leon()
{
Color = "Amarillo";
}
public new void HacerSonido()
{
Console.Out.WriteLine("ROOOWR");
}
}
public class Reyleon : Leon
{
public Reyleon() : base()
{
Color = "Amarillo y Negro";
}
public override void HacerSonido()
{
Console.Out.WriteLine("Gran Rugido");
}
}
static void Main(string[] args)
{
Gato g = new Gato();
g.HacerSonido();
Leon l = new Leon();
l.HacerSonido();
Gato poliGato = new Gato();
poliGato.HacerSonido();
Reyleon RL = new Reyleon();
RL.HacerSonido();
Leon poliLeon = (Leon)RL;
poliLeon.HacerSonido();
poliGato = (Gato)RL;
poliGato.HacerSonido();
string tecla = Console.ReadLine();
}
}
}
Y me da este error:
'Herencia.prog.Reyleon.HacerSonido()': no puede reemplazar el miembro
heredado 'Herencia.prog.Leon.HacerSonido()' porque no está marcado como
virtual, abstract u override
Pero el tema es que en la classe padre esta con virtual...
Alguien puede ayudarme??
Thanks!
Francesc Jaumot
España (Lérdia)
Leer las respuestas