public static void Reciclar(Lixo lixo) { Type Tipolixo = lixo.GetType().GetInterfaces().FirstOrDefault(); if (Tipolixo.Equals(typeof(PretoOrganico))) { //Casting = Método de conversão. A classe LIXO não "enxerga" o que tem dentro da classe CascaBanana, e por isso, indicamos para ela o que queremos. PretoOrganico organico = (PretoOrganico)lixo; //"Eu garanto que lixo contem PretoOrganico." System.Console.WriteLine(organico.Composteira() + " foi levado para a COMPOSTAGEM."); Console.ReadLine(); } else if (Tipolixo.Equals(typeof(VerdeVidro))) { VerdeVidro vidro = (VerdeVidro)lixo; System.Console.WriteLine(vidro.ReciclarVidro() + " foi jogado no lixo VERDE."); Console.ReadLine(); } else if (Tipolixo.Equals(typeof(AzulPapel))) { AzulPapel papel = (AzulPapel)lixo; System.Console.WriteLine(papel.ReciclarPapel() + " foi jogado no lixo AZUL."); Console.ReadLine(); } else if (Tipolixo.Equals(typeof(VermelhoPlastico))) { VermelhoPlastico plastico = (VermelhoPlastico)lixo; System.Console.WriteLine(plastico.ReciclarPlastico() + " foi jogado no lixo VERMELHO."); Console.ReadLine(); } else if (Tipolixo.Equals(typeof(MetalAmarelo))) { MetalAmarelo metal = (MetalAmarelo)lixo; System.Console.WriteLine(metal.ReciclarMetal() + " foi jogado no lixo AMARELO."); Console.ReadLine(); } else if (Tipolixo.Equals(typeof(CinzaNaoReciclavel))) { CinzaNaoReciclavel especial = (CinzaNaoReciclavel)lixo; System.Console.WriteLine(especial.DescarteEspecial() + " foi jogado no lixo de DESCARTES ESPECIAIS (CINZA)."); Console.ReadLine(); } }
public static void TipoReciclagem(VerdeVidro lixo) { System.Console.WriteLine(lixo.ReciclarVidro() + " Deve sempre ser jogado na lixeira de VIDROS."); }