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("-------------------"); }