static void PolimorfismoComGatoECachorro() { Animal cachorro = new Cachorro(); Animal gato = new Gato(); EmitirSomAnimal(cachorro); EmitirSomAnimal(gato); //cachorro.Morder(); referencia genérica não enchega o objeto if (cachorro is Cachorro) { ((Cachorro)cachorro).Morder(); //Antes de fazer cast fazer o teste para antecipar o erro } }
static void Main(string[] args) { Cachorro cachorro = new Cachorro(); Gato gato = new Gato(); Peixe peixe = new Peixe(); List <Animal> listaAnimais = new List <Animal>(); listaAnimais.Add(cachorro); listaAnimais.Add(gato); listaAnimais.Add(peixe); foreach (Animal animal in listaAnimais) { Console.WriteLine("Eu sou um " + animal + " que " + animal.QualHabitat()); } }
static void Main(string[] args) { Gato gato = new Gato(); Perro perro = new Perro(); List <Animal> zoo = new List <Animal>(); zoo.Add(gato); zoo.Add(perro); foreach (var item in zoo) { item.HacerRuido(); } //El foreach equivale a hacer lo siguiente gato.HacerRuido(); perro.HacerRuido(); Console.Read(); }
static void Main() { Animal a = new Gato(); //if( a is Cachorro) //{ // Cachorro c = (Cachorro)a; // c.Morder(); //} //else //{ // Console.WriteLine("o casting não pode ser feito"); //} Cachorro c = a as Cachorro; if (c != null) { c.Morder(); } else { Console.WriteLine("o casting não pode ser feito"); } }