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 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"