public static void Main()
Console.WriteLine("Hello World");
ICartao only = new OnlyFansCard();
only.PagarPorCredito(200m, 1234);
ICartao enjoei = new EnjoeiCard();
enjoei.PagarPorCredito(200m, 4321);
enjoei.ExibirPontuacao();
public bool PagarPorDebito (decimal valor, int pin);
public bool PagarPorCredito (decimal valor, int pin);
public bool PagarPorCredito (decimal valor, string chaveCriptografia);
public bool PagarPorDebito (decimal valor, string chaveCriptografia);
public void ExibirPontuacao ();
public class OnlyFansCard : ICartao
private const int PONTOS_POR_REAL = 2;
public void ExibirPontuacao ()
Console.WriteLine($"Total de pontos: {pontos}");
public bool PagarPorDebito (decimal valor, int pin)
Console.WriteLine($"pagamento por débito e pin. Cartão: {this}");
public bool PagarPorCredito (decimal valor, int pin)
pontos += Convert.ToInt32(PONTOS_POR_REAL * valor);
Console.WriteLine($"pagamento por crédito e pin. Cartão: {this}");
public bool PagarPorCredito (decimal valor, string caveCriptografia)
pontos += Convert.ToInt32(PONTOS_POR_REAL * valor);
Console.WriteLine($"pagamento por crédito e aprox. Cartão: {this}");
public bool PagarPorDebito (decimal valor, string chaveCriptografia)
Console.WriteLine($"pagamento por débito e aprox. Cartão: {this}");
public class EnjoeiCard : ICartao
private const int PONTOS_POR_REAL = 3;
public void ExibirPontuacao ()
Console.WriteLine($"Total de pontos: {pontos}");
public bool PagarPorDebito (decimal valor, int pin)
Console.WriteLine($"pagamento por débito e pin. Cartão: {this}");
public bool PagarPorCredito (decimal valor, int pin)
pontos += Convert.ToInt32(PONTOS_POR_REAL * valor);
Console.WriteLine($"pagamento por crédito e pin. Cartão: {this}");
public bool PagarPorCredito (decimal valor, string caveCriptografia)
pontos += Convert.ToInt32(PONTOS_POR_REAL * valor);
Console.WriteLine($"pagamento por crédito e aprox. Cartão: {this}");
public bool PagarPorDebito (decimal valor, string chaveCriptografia)
Console.WriteLine($"pagamento por débito e aprox. Cartão: {this}");