Example #1
0
        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("-------------------");
        }