Пример #1
0
        //Podemos definir un método que devuelve un objeto que implemente una interfaz adecuada, sin especificar el tipo.
        static IElectronico CreaAparato()
        {
            IElectronico aparato = null;
            string       dato    = string.Empty;
            int          opcion  = 0;

            Console.WriteLine("1-crear tele, 2-crear radio");
            dato   = Console.ReadLine();
            opcion = Convert.ToInt32(dato);

            switch (opcion)
            {
            case 1:
                Console.WriteLine("Marca de la tele->");
                dato    = Console.ReadLine();
                aparato = new CTelevisor(dato);
                break;

            case 2:
                Console.WriteLine("Marca de la Radio->");
                dato    = Console.ReadLine();
                aparato = new CRadio(dato);
                break;
            }

            return(aparato);
        }
Пример #2
0
        static void Main(string[] args)
        {
            //array de Interfaces
            //Todos los objetos del siguiente array implementan la misma interfaz.. no tienen porqué estar relacionados o pertenecer a la misma
            //cadena de herencia. Lo único que tienen en comun es que implementna la interfaz
            //Es un array con capacidades polimorficas
            IElectronico[] teles         = { new CTelevisor("Sony"), new CTelevisor("Telefunken"), new CRadio("Panasonic"), new CRadio("Thompson") };
            IElectronico   aparatoCreado = null;

            for (int i = 0; i < teles.Length; i++)
            {
                Console.WriteLine(teles[i]);
            }
            Console.WriteLine("----");

            //interfaces con métodos
            CTelevisor mitele  = new CTelevisor("Sharp");
            CRadio     miradio = new CRadio("RCB");

            Muestra(mitele);
            Muestra(miradio);
            Console.WriteLine("----");


            //Métodos que devuelven instancias de clases diferentes que implementan interfaz
            IElectronico aparato = CreaAparato();

            aparato.Encender(true);
            Console.WriteLine(aparato);


            Console.ReadKey();
        }