예제 #1
0
        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();
        }
예제 #2
0
        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("-----");
예제 #3
0
        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();
        }
예제 #4
0
        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();
        }