Beispiel #1
0
        static void Main(string[] args)
        {
            Console.WriteLine("ACCOUNT\n");

            //HERANÇA
            BusinesAccount busines = new BusinesAccount(100, "Antonia", 203.50, 300.00);

            Console.WriteLine("Teste de Herança:");
            Console.WriteLine(busines);

            //UPCASTING DOWNCASTING
            Account acc = new Account(101, "Belmiro", 10000.00);

            Console.WriteLine("Instanciação de um Account:");
            Console.WriteLine(acc);

            BusinesAccount bacc = new BusinesAccount(102, "Clementina", 2000.00, 500.00);

            Console.WriteLine("Instanciação de um BusinesAccount:");
            Console.WriteLine(bacc);

            SavingAccount sacc = new SavingAccount(103, "Diogo", 3000.00, 0.10);

            Console.WriteLine("Instanciação de um SavingAccount:");
            Console.WriteLine(sacc);

            //Upcasting: SubClasse -> SuperClasse
            Account acc1 = bacc;

            Console.WriteLine("Account recebendo um BusinesAccount:");
            Console.WriteLine(acc1);

            Account acc2 = new BusinesAccount(103, "Elder", 3000.00, 1000.00);

            Console.WriteLine("Account isntanciado como BusinesAccount:");
            Console.WriteLine(acc2);

            Account acc3 = new SavingAccount(104, "Francisco", 4000.00, 0.15);

            Console.WriteLine("Account isntanciado como SavingAcount:");
            Console.WriteLine(acc3);

            //Downcasting: SuperClasse -> SubClasse
            //A conversão não ocorre implicitamente, sendo necessário fazer um casting da SubClasse
            BusinesAccount bacc1 = (BusinesAccount)acc2;

            //Permite acessar os métodos especificos da SubClasse
            bacc1.Loan(50.00);
            Console.WriteLine("BusinesAccount recebendo um Acount que recebeu anteriormente um BusinesAccount:");
            Console.WriteLine(bacc1);

            //OBS: Não é possível realizar casting entre Objetos
            //de Classes Filhas de uma mesma Classe Mãe.
            //Ex: BusinesAccount bacc2 = (BusinesAccount)sacc;

            //Verificando de qual classe é o objeto
            Console.WriteLine("sacc é um Account? " + ((sacc is Account) ? "Sim" : "Não"));
            Console.WriteLine("sacc é um BusinesAccount? " + ((sacc is BusinesAccount) ? "Sim" : "Não"));
            Console.WriteLine("sacc é um SavingAccount? " + ((sacc is SavingAccount) ? "Sim" : "Não"));
        }
Beispiel #2
0
        static void Main(string[] args)
        {
            BusinesAccount account = new BusinesAccount(8010, "Bob", 100.0, 500.0);

            Console.WriteLine(account.Balance);
        }