miércoles, 19 de octubre de 2016

Clases Abstractas e Interfaces.

/*
 * Created by SharpDevelop.
 * User: manuel
 * Date: 17/10/2016
 * Time: 02:41 p. m.
 * Clase Abstracta
 * 
 */
using System;

namespace CalculosProyect
{
    /// <summary>
    /// Description of CalculadoraAbs.
    /// </summary>
    public abstract class CalculadoraAbs
    {
        public abstract double Suma();
        public abstract double Resta();
        public abstract double Division();
        public abstract double Multiplicacion();
    }
}




/*
 * Created by SharpDevelop.
 * User: manuel
 * Date: 18/10/2016
 * Time: 02:30 p. m.
 * Calculadora Interface 1
 */
using System;

namespace CalculosProyect
{
    /// <summary>
    /// Description of CalculadoraI.
    /// </summary>
    public interface CalculadoraI
    {
        String Num1{get;set;}
        String Num2{get;set;}
       
        String Suma();
        String Resta();
        String Multiplicacion();
        String Division();
       
    }
}






/*
 * Created by SharpDevelop.
 * User: manuel
 * Date: 18/10/2016
 * Time: 02:36 p. m.
 * Calculadora interface 2
 */
using System;

namespace CalculosProyect
{
   
    public interface CalculadoraNumI
    {
        double Suma();
        double Resta();
        double Multiplicacion();
        double Division();
    }
}






/*
 * Created by SharpDevelop.
 * User: manuel
 * Date: 18/10/2016
 * Time: 02:39 p. m.
 * Calculadora Multiple Interface que se extiende
 * de dos interfaces mas. Solo tiene un metodo.
 * Con esto estamos creando herencia multiple.
 */
using System;

namespace CalculosProyect
{
    /// <summary>
    /// Description of CalculadoraMultiple.
    /// </summary>
    public interface CalculadoraMultiple:CalculadoraI,CalculadoraNumI
    {
        void Muestra();
    }
}






/*
 * Created by SharpDevelop.
 * User: manuel
 * Date: 18/10/2016
 * Time: 02:41 p. m.
 * CalculadoraImp que se extiende de CalculadoraMultiple
 */
using System;

namespace CalculosProyect
{
    /// <summary>
    /// Description of CalculadoraImp.
    /// </summary>
    class CalculadoraImp : CalculadoraMultiple
    {
        String num1;
        String num2;
       
        public CalculadoraImp()
        {
        }

        public CalculadoraImp(String n1, String n2)
        {
            this.num1 = n1;
            this.num2 = n2;
        }
       
        String Num1{
            get{
                return num1;
            }
           
            set{
                this.num1 = value;
            }
        }
       
        String Num2{
            get{
                return num2;
            }
           
            set{
                this.num2 = value;
            }
        }
       
        //-----------metodos clase CalculadoraI--------------------
       
        String CalculadoraI.Suma(){
            return "Suma";
        }
       
       String CalculadoraI.Resta(){
            return "Resta";
        }
         String CalculadoraI.Multiplicacion(){
            return "Division";
        }
       String CalculadoraI.Division(){
            return "Multiplicacion";
        }
       
        //-------------------metodos CalculadoraNumI-------------------
       
        double CalculadoraNumI.Suma(){
            return 1.0;
        }
       
        double CalculadoraNumI.Resta(){
            return 2.0;
        }
       
        double CalculadoraNumI.Multiplicacion(){
            return 3.0;
        }
       
       double CalculadoraNumI.Division(){
            return 4.0;
        }
       
        public String Muestra(){
            Console.WriteLine("Muestra Interface");
        }
    }


 //Poner en el método principal
CalculadoraI calculadoraimp = new CalculadoraImp("1","0");
            
 Console.WriteLine("Num 1: {0}, Num2: {1}",calculadoraimp.Num1,calculadoraimp.Num2);
 Console.WriteLine("CalculadoraI con los metodos de: {0}, {1}, {2}, {3}",                       calculadoraimp.Suma(),calculadoraimp.Resta(),calculadoraimp.Multiplicacion(),calculadoraimp.Division());
           
            CalculadoraNumI calculadoraNumI = new CalculadoraImp();
            Console.WriteLine("CalculadoraNumI con los metodos de: {0}, {1}, {2}, {3}",
                              calculadoraNumI.Suma(),calculadoraNumI.Resta(),calculadoraNumI.Multiplicacion(),calculadoraNumI.Division());
           
            CalculadoraMultiple calculadoramultiple = new CalculadoraImp();
           
            Console.WriteLine("CalculadoraMultiple solo Muestra() pero puede mostrar lo utilizado en CalculadoraI: {0}",
                              calculadoramultiple.Muestra());
           
            CalculadoraImp calculadoraimp2 = new CalculadoraImp();
           
            Console.WriteLine("CalculadoraImp solo Muestra(): {0}",
                              calculadoraimp2.Muestra());
            Console.Write("Press any key to continue . . . ");
            Console.ReadKey(true); 

No hay comentarios:

Publicar un comentario