static void Main(string[] args) { InstrumentoMusical instrumentoGenerico = new InstrumentoMusical(); System.Console.WriteLine(instrumentoGenerico.TocarMusica()); Violao violao1 = new Violao(); System.Console.WriteLine("VIOLÃO: " + violao1.TocarMusica()); violao1.TocarAcordes(); }
static void Main(string[] args) { Guitarra guitarrilla = new Guitarra("Gibson", "Taiwan", 80000); InstrumentoMusical instrument = new InstrumentoMusical("modelo?", "Tienda Lituana", 123456789); Piano lasTeclas = new Piano("Casio", "Casiolandia", 30000); GuitarraCriolla criolla = new GuitarraCriolla("Electroacústica", "Argentina", 12000, true); //List<Guitarra> listaGuitarras = new List<Guitarra>(); //Solo guitarra //listaGuitarras.Add(guitarrilla); //listaGuitarras.Add(lasTeclas); List <InstrumentoMusical> listaInstrumentos = new List <InstrumentoMusical>();//Cualquier instrumento que herede de "InstrumentoMusical". listaInstrumentos.Add(guitarrilla); listaInstrumentos.Add(lasTeclas); listaInstrumentos.Add(instrument); listaInstrumentos.Add(criolla); foreach (InstrumentoMusical item in listaInstrumentos) //Tipo de dato original { //Pregunto por el tipo de dato particular. if (item is GuitarraCriolla) //TIENE QUE IR DE LO MÁS ESPECÍFICO A LO MENOS ESP. Si le preguntas si es una guitarra antes de preg. si es una guitarra criolla igual te va a decir que si. { Console.WriteLine(((GuitarraCriolla)item).Cancion()); } else if (item.GetType() == typeof(Guitarra)) //Si el tipo de lo que estoy mirando es Guitarra, imprimo ese elemento de tipo "InstrumentoMusical" pasandolo a formato guitarra. { Console.WriteLine(((Guitarra)item).Marca); //Le agrada el casteo evidentemente. (Sólo así aparecen los métodos de esa clase en particular, en este caso Marca) } else if (item is Piano) //Una variación del Gettype, pueden pedir cualquiera de los dos. { Console.WriteLine(((Piano)item).SoyUnPiano()); } //else if(item is GuitarraCriolla) //{ // Console.WriteLine(((GuitarraCriolla)item).Cancion()); //} Console.WriteLine(item.Informacion); } //34 en adelante, empezar centralita. }