static void Main(string[] args) { Prueba prueba = new Prueba(); prueba.Numero = 100; IA interfaceA = prueba; interfaceA.Numero = 200; IB interfaceB = prueba; interfaceB.Numero = 300; Console.WriteLine(prueba.Numero); Console.WriteLine(interfaceA.Numero); Console.WriteLine(interfaceB.Numero); Console.ReadKey(); Demo demo = new Demo { Numero = 100, Nombre = "Borja" }; demo.PintaNumero(); IDemo demo2 = new Demo { Numero = 100, Nombre = "Borja" }; demo2.PintaNumero(); Console.ReadKey(); //============================================================== IAlumno a = new AlumnoAPIRest(); AlumnoDB alumnoDB; AlumnoAPIRest alumnoApi; Console.WriteLine("Tipo: {0}", a.GetType().ToString()); Console.WriteLine("Tipo: {0}", typeof(AlumnoAPIRest).ToString()); if (a.GetType() == typeof(AlumnoAPIRest)) { alumnoApi = (AlumnoAPIRest)a; } else if (a.GetType() == typeof(AlumnoDB)) { alumnoDB = (AlumnoDB)a; } Console.WriteLine("Fin Demo"); Console.ReadKey(); //AplicaciĆ³n Poliformica utilizando Factorias //============================================================== IAlumno alumno1 = CrearObjetoAlumno(fuentedatos); alumno1.CargarDatos(); Console.WriteLine("Nombre: {0}", alumno1.Nombre); Console.WriteLine("Apellidos: {0}", alumno1.Apellidos); Console.WriteLine("Edad: {0}", alumno1.Edad); Console.ReadKey(); //AplicaciĆ³n Uniformica //============================================================== AlumnoDB alumno = new AlumnoDB(); alumno.CargarDatos(); Console.WriteLine("Nombre: {0}", alumno.Nombre); Console.WriteLine("Apellidos: {0}", alumno.Apellidos); Console.WriteLine("Edad: {0}", alumno.Edad); //Podemos usar miembros no comunes Console.WriteLine("Conectado: {0}", alumno.Conectado); Console.ReadKey(); }