static void Main(string[] args)
        {
            Conta        conta   = new Conta(101, "Jiraya", 0.0);
            ContaEmpresa empresa = new ContaEmpresa(1001, "Kurama", 0.0, 400.0);

            //UPCASTING
            Conta conta2 = empresa;
            Conta conta3 = new ContaEmpresa(1002, "Kakashi", 0.0, 300.0);
            Conta conta4 = new ContaPoupanca(2001, "Hinata", 0.0, 0.01);

            // DOWNCASTING

            ContaEmpresa conta5 = (ContaEmpresa)conta3;

            conta5.Emprestimo(200.0);

            // ContaEmpresa conta6 = (ContaEmpresa)conta4;

            if (conta4 is ContaEmpresa)
            {
                //ContaEmpresa conta6 = (ContaEmpresa)conta4;
                ContaEmpresa conta6 = conta4 as ContaEmpresa;  // Opção - as
                conta6.Emprestimo(150.0);
                Console.WriteLine("Emprestimo realizado com sucesso!");
            }

            if (conta4 is ContaPoupanca)
            {
                // ContaPoupanca conta6 = (ContaPoupanca)conta4;
                ContaPoupanca conta6 = conta4 as ContaPoupanca; // Opção - as
                conta6.AtualizaSaldo();
                Console.WriteLine("Poupança rendeu juros!");
            }
        }
        static void Main(string[] args)
        {
            Conta acc = new Conta(1001, "Alex", 0.0);
            ContaPessoaJuridica pj = new ContaPessoaJuridica(1002, "CB", 0.0, 1000);

            acc.Deposito(1000);
            //upcasting - conversao da superClasse;
            Conta         acc1 = pj;
            ContaPoupanca cpj  = new ContaPoupanca(1003, "Alex", 0.0, 1.50);

            pj.Deposito(1000);
            cpj.Deposito(1000);
            cpj.AtualizaSaldo();
            cpj.Saque(1102);
            Console.WriteLine(pj);
            Console.WriteLine(cpj);
            Console.ReadKey();
        }
Beispiel #3
0
        static void Main(string[] args)
        {
            Conta        conta            = new Conta(4116, "Marcelo Souza", 0.0);
            ContaEmpresa contaEmpresarial = new ContaEmpresa(4117, "Elaine", 0.0, 500.0);


            // UPCASTING
            Conta conta1 = contaEmpresarial;
            Conta conta2 = new ContaEmpresa(4117, "Alex", 0.0, 200.00);
            Conta conta3 = new ContaPoupanca(4118, "Anna", 0.0, 0.01);

            // DOWNCASTING
            ContaEmpresa conta4 = (ContaEmpresa)conta2;

            conta4.Emprestimo(200.00);

            //ContaEmpresa conta5 = (ContaEmpresa)conta3;
            if (conta3 is ContaEmpresa)
            {
                //ContaEmpresa conta5 = (ContaEmpresa)conta3;
                ContaEmpresa conta5 = conta3 as ContaEmpresa;
                conta5.Emprestimo(190.0);
                Console.WriteLine("Emprestimo realizado!");
            }

            if (conta3 is ContaPoupanca)
            {
                //ContaPoupanca conta5 = conta3 as ContaPoupanca;
                ContaPoupanca conta5 = (ContaPoupanca)conta3;
                conta5.AtualizaSaldo();
                Console.WriteLine("ATUALIZA");
            }

            Conta cc1 = new Conta(1001, "Alex", 500.0);
            Conta cc2 = new ContaPoupanca(1002, "Anna", 500.0, 0.01);

            cc1.Saque(10.0);
            cc2.Saque(10.0);

            Console.WriteLine(cc1.Saldo);
            Console.WriteLine(cc2.Saldo);
        }
Beispiel #4
0
        static void Main(string[] args)
        {
            ContaCorrente Conta  = new ContaCorrente(1001, "Priscila", 0.0);
            ContaEspecial ContaE = new ContaEspecial(1002, "Beto", 200.00, 500.00);

            // UPCASTING
            ContaCorrente Conta1 = ContaE;
            ContaCorrente Conta2 = new ContaEspecial(1003, "Helena", 100.00, 300.00);
            ContaCorrente Conta4 = new ContaPoupanca(9001, "Heitor", 100.00, 1.0);

            //DOWNCASTING
            //ContaEspecial ContaE1 = Conta2;

            /*Não aceita, pois o compilador verifica o tipo de variável <ContaCorrente>,
             * mesmo ela recedendo dados de subtipo <ContaEspecial> */
            ContaEspecial ContaE1 = (ContaEspecial)Conta2;

            ContaE1.Emprestimo(200.00);
            //Conta2.Emprestimo(200.00); Não funciona, pois emprestimo é uma operacao da classe ContaEspecicial

            //ContaEspecial ContaE3 = (ContaEspecial)Conta4;
            // Não dara erro de compilação, mas gerará uma exceção, pois Conta4 é um objeto do Tipo ContaPoupança
            // e em tempo de execução da erro

            if (Conta4 is ContaEspecial)
            {
                //   ContaEspecial ContaE3 = (ContaEspecial)Conta4;
                ContaEspecial ContaE3 = Conta4 as ContaEspecial;
                ContaE3.Emprestimo(150.00);
            }
            if (Conta4 is ContaPoupanca)
            {
                //   ContaPoupanca ContaP = (ContaPoupanca)Conta4;
                ContaPoupanca ContaP = Conta4 as ContaPoupanca;
                ContaP.AtualizaSaldo(2.0);
            }


            Console.WriteLine("Hello World!");
        }