public static void Executar() { Conta conta = new Conta(1001, "Gustavo", 0.0); ContaSalario contaSalario1 = new ContaSalario(1002, "Alex", 0.0, 500.00); /* UPCASTING -> 'ContaSalario' é uma 'Conta' */ Conta conta1 = contaSalario1; Conta conta2 = new ContaSalario(1003, "Bob", 0.0, 200.0); Conta conta3 = new ContaCorrente(1004, "Anna", 0.0, 0.01); /* DOWNCASTING -> 'Conta' não é uma 'ContaSalario' nem 'ContaCorrente' */ ContaSalario contaSalario2 = (ContaSalario)conta2; contaSalario2.RealizarEmprestimo(100.0); /* ContaSalario contaSalarioErro = (ContaSalario) acc3; <- COMPILADOR NÃO PERCEBE O ERRO! COMO SOLUCIONAR? */ if (conta3 is ContaSalario) { ContaSalario contaSalario3 = (ContaSalario)conta3; Console.WriteLine("Downcasting não será executado!"); } if (conta3 is ContaCorrente) { /* ContaCorrente sacc1 = (ContaCorrente) acc3;*/ ContaCorrente contaCorrente = conta3 as ContaCorrente; contaCorrente.AtualizarSaldo(); Console.WriteLine("Saldo atualizado!"); } }
static void Main(string[] args) { // Uso das classes de Formas Geometricas Quadrado quadrado = new Quadrado(5, "vermelho"); Console.WriteLine(quadrado.Area()); Triangulo triangulo = new Triangulo(10, 5, "azul"); Console.WriteLine(triangulo.Area()); Circulo circulo = new Circulo(2, "verde"); Console.WriteLine(circulo.Area()); // Uso das classes de Whatsapp Contatinho contatinho1 = new Contatinho("Maria", "51 99892838"); Contatinho contatinho2 = new Contatinho("Helio", "51 99553721"); Contatinho contatinho3 = new Contatinho("Mara", "51 99553666"); WhatsappCore whatsapp = new WhatsappCore(); whatsapp.AdicionaContato(contatinho1); whatsapp.AdicionaContato(contatinho2); whatsapp.AdicionaContato(contatinho3); whatsapp.AdicionaMensagens(new MensagemTexto(contatinho1, "00:18", "Oi sumido!!")); whatsapp.AdicionaMensagens(new MensagemFoto(contatinho1, "00:30", "nudes.jpg")); whatsapp.AdicionaMensagens(new MensagemAudio(contatinho1, "07:00", "Desculpa, estava bêbado ontem.")); Console.WriteLine(whatsapp.ListarContatos()); Console.WriteLine(whatsapp.ListarMensagens("Maria")); // Uso das classes de Banco PessoaFisica pessoaFisica1 = new PessoaFisica( 1, "Avenida Brasil, 1200", "51 98764320", "*****@*****.**", "Hermes", "Dos Santos", "25416278932", "98723451687", new DateTime(1989, 07, 18) ); PessoaFisica pessoaFisica2 = new PessoaFisica( 2, "Avenida Borges de Medeiros, 320", "51 98224325", "*****@*****.**", "Luiz", "Ferreira", "15226274936", "98732451333", new DateTime(1945, 02, 11) ); PessoaFisica pessoaFisica3 = new PessoaFisica( 3, "Avenida Magalhães, 320", "51 92364120", "*****@*****.**", "Luisa", "Da Silva", "25423478112", "12323444687", new DateTime(1999, 12, 05) ); PessoaFisica pessoaFisica4 = new PessoaFisica( 4, "Avenida Valência, 2000", "51 98774122", "*****@*****.**", "Maicon", "Figueira", "25226233932", "98124451587", new DateTime(2007, 01, 01) ); List <PessoaFisica> pessoas = new List <PessoaFisica>(); pessoas.Add(pessoaFisica1); pessoas.Add(pessoaFisica2); PessoaJuridica pessoaJuridica = new PessoaJuridica( 5, "Avenida Cristovão Colombo, 2233", "51 92887022", "*****@*****.**", pessoas, "230122578000129", "Empresa Ltda", "Empresa Super Boa", 000929200, new DateTime(2015, 11, 20) ); ContaPoupanca contaPoupanca = new ContaPoupanca( pessoaFisica1, 1, 1 ); ContaSalario contaSalario = new ContaSalario( pessoaFisica4, 2, 1 ); ContaPoupanca contaPoupanca1 = new ContaPoupanca( pessoaFisica4, 3, 1 ); ContaCorrente contaCorrente = new ContaCorrente( pessoaFisica3, 4, 1 ); ContaCorrente contaCorrente1 = new ContaCorrente( pessoaJuridica, 5, 1 ); try { contaPoupanca.Depositar(1000.00); contaPoupanca.Sacar(500.00); contaPoupanca.Transferir(contaSalario, 200.00); Console.WriteLine(contaPoupanca.ConsultarSaldo()); contaSalario.Sacar(100); contaSalario.Transferir(contaPoupanca1, 50); Console.WriteLine(contaSalario.ConsultarSaldo()); contaCorrente.Sacar(1000); contaCorrente.Pagar("23790.50400 41990.901179 31008.109204 1 80020000020000"); contaCorrente.Emprestimo(3000); Console.WriteLine(contaCorrente.ConsultarSaldo()); Console.WriteLine(contaCorrente.Limite); } catch (Exception exception) { Console.WriteLine(exception.Message); } }