Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

Estou com dúvida no curso de Java e Orientação a Objetos, no exercício 5 do capítulo Herança, reescrita e polimorfismo.

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)?

7 respostas

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.

solução!

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"