Se tivermos um método em ContaCorrente (public void emprestimo(double valor);) desta forma cc que é do tipo Conta conseguiria acessar cc.emprestimo(double valor)?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Se tivermos um método em ContaCorrente (public void emprestimo(double valor);) desta forma cc que é do tipo Conta conseguiria acessar cc.emprestimo(double valor)?
Se o método emprestimo só existir na classe ContaCorrente e não na sua classe pai que é Conta, você só conseguiria acessa-lo se a variável cc fosse uma instancia de ContaCorrente.
Exemplo:
Conta cc = new ContaCorrente();
cc.emprestimo(10.0);
Se o método emprestimo só existir na classe ContaCorrente e não na sua classe pai que é Conta, você só conseguiria acessa-lo se a variável cc fosse uma instancia de ContaCorrente.
Exemplo:
Conta cc = new ContaCorrente();
cc.emprestimo(10.0);
Mesmo assim cc é do Tipo Conta e pela lei do polimorfismo, não consegue acessar o método empréstimo da classe ContaCorrente. creio que deva ser assim:
ContaCorrente cc = new ContaCorrente();
cc.emprestimo(10.0);
Na verdade o exemplo da Lais está correto, pois o new é dado em ContaCorrente.
cc = new ContaCorrente();
Qualquer variável que seja uma instacia de classes filhas, é considerada uma variável do tipo da classe pai. Portanto, você pode dizer que é uma variável do tipo Conta, mas uma instância de ContaCorrente.
Os dois exemplos estão certos. Tanto,
ContaCorrente cc = new ContaCorrente();
como,
Conta cc = new ContaCorrente()
Sendo assim, você podera acessar o método emprestimo(), pois os dois exemplos são instancias de ContaCorrente.
Pode ser que eu esteja enganado, mas o meu copilador diz que o metodo emprestimo(double valor) é desconhecido da classe Conta. Crie um metodo emprestimo(double valor) em Conta. Adicione conversão para ContaCorrente.
Você precisará adicionar um "cast" no seu atributo cc, mas o método emprestimo poderá ser acessado.
Teste apertar CTRL + 1, depois escolha a opção "add cast to cc"