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