示例#1
0
        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
            }
        }
示例#2
0
        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();
        }
示例#4
0
        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");
            }
        }