Example #1
0
        static void Main(string[] args)
        {
            // criamos 2 objetos do tipo Account e BusinessAccont
            // os argumentos
            Account        acc  = new Account(1001, "Gilvan", 0.0);
            BusinessAccont bacc = new BusinessAccont(1002, "Lucas", 0.0, 500.0);


            Console.WriteLine("UPCASTING, que é conversão da subclasse pra superclasse");
            // Casting é converter tipo de variáveis representa em ()

            // a variavel Account recebe um objeto BusinessAccont

            Account acc1 = bacc;
            Account acc2 = new BusinessAccont(1003, "Matheus", 100.00, 500.00);
            Account acc3 = new SavingsAccount(1004, "Sandra", 50.0, 0.01);

            Console.WriteLine("DOWNCASTING, que é conversão da superclasse pra subclasse");
            Console.WriteLine("Exemplo 1 ");
            // BusinessAccont acc4 = acc2 ele mostra erro na conversão
            // vmos ter de converte()    Account em BusinessAccount
            BusinessAccont acc4 = (BusinessAccont)acc2;

            // agora posso fazer a chamada do empretimo
            acc4.Loan(100.0);
            // se eu tentar de outro jeito abaixo ele não vai mostrar o loan
            // acc2.
            Console.WriteLine("Exemplo 2 ");

            //ele mostra erro
            //BusinessAccont acc5 = acc3;
            // mesmo que eu converta com casting ele mostra sem erro
            //mais quando copilo ele mostra o erro
            //  BusinessAccont acc5 = (BusinessAccont)acc3;
            // lembre que os objetos pode ser de tipo diferente

            // temos que fazer uma tratativa
            // vamos usaar o operador is e depois as
            //testo abaixo se a varivavel acc3 é uam instancai de BusinessAccont

            if (acc3 is BusinessAccont)
            {
                // a conversão pode ser de 2 maneiras ou referência
                // BusinessAccont acc5 = (BusinessAccont)acc3;
                BusinessAccont acc5 = acc3 as BusinessAccont;

                acc5.Loan(200.0);
                Console.WriteLine("Loan");
            }

            if (acc3 is SavingsAccount)
            {
                // a conversão pode ser de 2 maneiras
                // SavingsAccount acc5 = (SavingsAccount)acc3;
                SavingsAccount acc5 = acc3 as SavingsAccount;
                acc5.UpdateBalence();
                Console.WriteLine("Update!");
            }
        }
Example #2
0
        static void Main(string[] args)
        {
            Console.WriteLine("faça um depoisito ! ");

            BusinessAccont account = new BusinessAccont(2536, "gilvan", 250.0, 300.0);

            Console.WriteLine(account.Balance);

            //  account.Balance = 200.0; este atributo não pode receber valor
        }
Example #3
0
        static void Main(string[] args)
        {
            Console.WriteLine();
            Console.WriteLine("Exemplo 1 Account acc1");
            //os argumentos
            Account acc1 = new Account(1001, "Gilvan", 100.0);

            Console.Write(acc1.Number);
            Console.Write(" , " + acc1.Holder);
            Console.Write(" , " + acc1.Balance);
            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine("Exemplo 2 Account acc2");
            Account acc2 = new BusinessAccont(1002, "Lucas", 150.00, 500.00);

            Console.Write(acc2.Number);
            Console.Write(" , " + acc2.Holder);
            Console.Write(" , " + acc2.Balance);
            // Console.WriteLine(" , " + acc2.); // obs que instaciamos mais não visualizamos pela superclasse LoanLimit

            Console.WriteLine();

            Account acc3 = new SavingsAccount(1003, "Matheus", 300.00, 0.01);

            Console.WriteLine();
            Console.WriteLine("Exemplo 3 Account acc3");

            Console.Write(acc3.Number);
            Console.Write(" , " + acc3.Holder);
            Console.Write(" , " + acc3.Balance);

            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine("Exemplo 4 SavingsAccount sac");

            SavingsAccount sac = new SavingsAccount(1004, "Sandra", 250.0, 0.01);

            Console.Write(sac.Number);
            Console.Write(" , " + sac.Holder);
            Console.Write(" , " + sac.Balance);
            Console.Write(" , " + sac.InterestRate);
            Console.WriteLine();

            // obs que instaciamos mais não visualisamos pela subclasse e visualizamos InterestRate
        }