static void Main(string[] args) { //CUANDO SE QUIERE HACER OVERRIDE DE UNA FUNCION NO VIRTUAL //SE TIENE QUE HACER NEW //PERDEMOS POLIMORFISMO //VIRTUAL MANTIENE LO POLIMORFICO Y NEW NO productoImportado biciI = new productoImportado("bici importada", 100.50, 0.5); biciI.CalculaPrecio(); biciI.muestraVemta(); Console.WriteLine("---"); Productocs tele = new Productocs("television", 10500); tele.CalculaPrecio(); tele.muestraVemta(); Console.WriteLine("---"); // NEW DE OTRA CLASE POR TEMAS DE POLIMORFISMO Productocs p3 = new productoImportado("bicicleta", 2200, 0.2); //IMPRIME EL CALCULA PRECIO DE IMPORTADO p3.CalculaPrecio(); //IMPRIME EL MUESTRA DE PRODCUTO COMUN (CLASE BASE) YA QUE SE PIERDE EL POLIMORFISMO EN NEW p3.muestraVemta(); //CON OVERRIDE HUBIERA SIDO IGUAL A PRIMERO Console.ReadKey(); }
static void Main(string[] args) { //CASTING PERMITE QUE UNA CLASE TRABAJE COMO SI FUERA OTRA //CUANDO TENEMOS UNA CADENA DE HERENCIA, TENEMOS UN ELEMENTO COMUN DE SU PADRE //A B C -> A B // A B <- A B C //MAS ESPECIFICO A LO MAS GENERAL Productocs P1 = new productoImportado("tele", 2500, 0.15); //se puede hacer por que productoimportado es un producto P1.CalculaPrecio(); Console.WriteLine(P1); Console.WriteLine("-----"); //SOLO TRABAJA CON LA CLASE PRODUCTO //P1.mensaje(); //EL METODO MENSAJE ESTA DEFINIDO EN IMPORTADO NO EN PRODUCTO //HACER CAST SE PUEDE USAR ASI PARA ACCEDER A MENSAJE ((productoImportado)P1).mensaje(); //SOLO SE PUEDE USAR CON CLASES EN HENENCIA //OBJECT ES SUPERTIPO Y TODOS HEREDAN DE EL object p2 = new Productocs("radio", 300.5); ((Productocs)p2).CalculaPrecio(); Console.WriteLine((Productocs)p2); Console.WriteLine("-----");
static void Main(string[] args) { //CLASE ABSTRACTA NOS SIRVE PARA PODER DEFINIR EL CONCEPTO DEL CUAL VAMOS A TENER CLASES QUE SE PUEDEN INSTANCIAR //Productocs bici = new Productocs("bici", 100.50 ); //bici.CalculaPrecio(); //bici.muestraVemta(); //Console.WriteLine("----"); productoImportado biciI = new productoImportado("bici importada", 100.50, 0.5); biciI.CalculaPrecio(); biciI.muestraVemta(); ProductoDetenido biciM = new ProductoDetenido("bici detenida", 100.50, 0.5, 500); Console.WriteLine("----"); biciM.CalculaPrecio(); biciM.muestraVemta(); Console.ReadKey(); }
static void Main(string[] args) { Productocs bici = new Productocs("bici", 100.50); bici.CalculaPrecio(); bici.muestraVemta(); Console.WriteLine("----"); productoImportado biciI = new productoImportado("bici importada", 100.50, 0.5); biciI.CalculaPrecio(); biciI.muestraVemta(); ProductoDetenido biciM = new ProductoDetenido("bici detenida", 100.50, 0.5, 500); Console.WriteLine("----"); biciM.CalculaPrecio(); biciM.muestraVemta(); Console.ReadKey(); }