static void Main(string[] args) { ContaBancaria contaCorrente = new ContaCorrente(); ContaBancaria poupanca = new ContaPoupanca(); // === Polimorfismo com Herança (sobrescrita) Console.WriteLine("======= Depositar =========="); Console.WriteLine($"{ contaCorrente.Depositar(500M) } Saldo atual: { contaCorrente.ObterSaldo() }"); Console.WriteLine($"{ poupanca.Depositar(500M) } Saldo atual: { poupanca.ObterSaldo() }"); Console.WriteLine(""); Console.WriteLine("======= Sacar =========="); Console.WriteLine($"{ contaCorrente.Sacar(100M) } Saldo atual: { contaCorrente.ObterSaldo() }"); Console.WriteLine($"{ poupanca.Sacar(100M) } Saldo atual: { poupanca.ObterSaldo() }"); Console.ReadKey(); // === Polimorfismo com sobrecarga de método Console.WriteLine(""); Console.WriteLine("======= Obter Saldo =========="); Console.WriteLine(poupanca.ObterSaldo("Charles M")); Console.ReadKey(); }
private static void TestarHerancaEPolimorfismo() { Console.WriteLine("-------------------"); Console.WriteLine("Exemplo Herança e Polimorfismo"); Console.WriteLine("-------------------"); Console.WriteLine("-------------------"); Console.WriteLine("Conta poupança"); var contaPoupanca = new ContaPoupanca(DateTime.Now, 100); Console.WriteLine("Depositando 100,00 na conta poupança..."); contaPoupanca.Depositar(100); Console.WriteLine("Saque de R$ 70,00."); contaPoupanca.Sacar(70); Console.WriteLine(string.Format("Novo saldo: {0}", contaPoupanca.ObterSaldo().ToString("###,##0.00"))); try { Console.WriteLine("Tentando sacar 131,00..."); contaPoupanca.Sacar(131); } catch (ArgumentException e) { Console.WriteLine(e.Message); Console.WriteLine(string.Format("Saldo da conta poupança: {0}", contaPoupanca.ObterSaldo().ToString("N2"))); } Console.WriteLine("-------------------"); Console.WriteLine("-------------------"); Console.WriteLine("Conta corrente sem limite"); var ccSemLimite = new ContaCorrente(DateTime.Now, 0); Console.WriteLine("Depositando 100,00 na conta corrente..."); ccSemLimite.Depositar(100); Console.WriteLine("Saque de R$ 50,00"); ccSemLimite.Sacar(50); Console.WriteLine(string.Format("Saldo: {0}", ccSemLimite.ObterSaldo().ToString("N2"))); try { Console.WriteLine("Tentando sacar mais R$ 51,00 da conta corrente..."); ccSemLimite.Sacar(51); } catch (Exception e) { Console.WriteLine(e.Message); Console.WriteLine(string.Format("Saldo da conta corrente: {0}", ccSemLimite.ObterSaldo().ToString("N2"))); } Console.WriteLine("-------------------"); Console.WriteLine("-------------------"); Console.WriteLine("Conta corrente com limite"); var ccComLimite = new ContaCorrente(DateTime.Now, 0); Console.WriteLine("Depositando 100,00 na conta corrente..."); ccComLimite.Depositar(100); Console.WriteLine(string.Format("Saldo da conta corrente antes do limite: {0}", ccComLimite.ObterSaldo().ToString("N2"))); Console.WriteLine("Definindo limite de 50,00 na conta corrente..."); ccComLimite.DefinirLimite(50); Console.WriteLine(string.Format("Saldo da conta corrente depois do limite: {0}", ccComLimite.ObterSaldo().ToString("N2"))); Console.WriteLine("Tentando sacar 101,00 da conta corrente..."); ccComLimite.Sacar(101); Console.WriteLine(string.Format("Saldo da conta corrente depois do saque: {0}", ccComLimite.ObterSaldo().ToString("N2"))); Console.WriteLine("-------------------"); }