Beispiel #1
0
        static void Main(string[] args)
        {
            ContaComercial conta = new ContaComercial(8010, "Jeh", 100.0, 500.0);

            Console.WriteLine(conta.Saldo);

            Console.Read();
        }
Beispiel #2
0
        static void Main(string[] args)
        {
            //instanciando a classe ContaNormal
            ContaNormal conta = new ContaNormal(1001, "Jeh", 500.0);
            //instanciando a classe ContaComercial
            ContaComercial contaComercia1 = new ContaComercial(1002, "Pedro", 0.0, 500.0);

            //POLIMORFISMO
            //objetos de um mesmo tipo tendo comportamentos diferentes

            //UPCASTING
            // recebe um objeto de qualquer tipo de sub classe dela
            ContaNormal conta1 = contaComercia1;
            ContaNormal conta2 = new ContaComercial(1003, "Luke", 0.0, 200.0);
            ContaNormal conta3 = new ContaPoupanca(1004, "Tank", 0.0, 0.01);

            //DOWNNCASTING
            //receber um objeto da super classe
            ContaComercial conta4 = (ContaComercial)conta2;

            conta4.Emprestimo(100.0);


            //Precisa falhar pois a conta3 nao pertence a ContaComercial
            if (conta3 is ContaComercial)
            {
                //ContaComercial conta5 = (ContaComercial)conta3;
                ContaComercial conta5 = conta3 as ContaComercial;
                conta5.Emprestimo(200.0);
                Console.WriteLine("Emprestimo!");
            }

            if (conta3 is ContaPoupanca)
            {
                ContaPoupanca conta5 = (ContaPoupanca)conta3;
                conta5.AtualizarSaldo();
                Console.WriteLine("Saldo Atualizado!");
            }

            Console.Read();
        }