public static void Main(){
CuentaCorriente cuentaDhamar = new CuentaCorriente(2f, 50000f);
cuentaDhamar.Consignar(5000);
cuentaDhamar.Retirar(4000);
cuentaDhamar.Retirar(500);
cuentaDhamar.Retirar(100);
cuentaDhamar.Retirar(2000);
cuentaDhamar.Retirar(165);
cuentaDhamar.Retirar(70000);
cuentaDhamar.ExtractoMensual();
cuentaDhamar.Retirar(170);
public Cuenta (float TasAn, float saldo){
public virtual float Consignar (float dinero){
public virtual bool Retirar (float dinero){
protected virtual float ApliInter (){
float interes = (TasAn*saldo)/100;
return Consignar(interes);
public virtual float ExtractoMensual(){
class CuentaCorriente: Cuenta{
public CuentaCorriente(float TasAn, float saldo) : base(TasAn, saldo){
public override bool Retirar (float dinero){
sobregiro += (dinero - saldo);
return base.Retirar(dinero);
public override float Consignar (float dinero){
float sob = Math.Min(sobregiro, dinero);
float consignado = base.Consignar(dinero - sob);
Console.WriteLine("..................................");
Console.WriteLine("Saldo = "+ saldo);
Console.WriteLine("Comisión = "+ Comis);
Console.WriteLine("Número de Transacciones = "+ (numConsig + numRet));
Console.WriteLine("Sobregiro: " + sobregiro);