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

Dúvida no exercício 5. Não entendi a idéia aqui.

Pergunta O que você acha de rodar o código anterior da seguinte maneira: Conta c = new Conta(); Conta cc = new ContaCorrente(); Conta cp = new ContaPoupanca(); Compila? Roda? O que muda? Qual é a utilidade disso? Realmente, essa não é a maneira mais útil do polimorfismo - veremos o seu real poder no próximo exercício. Porém existe uma utilidade de declararmos uma variável de um tipo menos específico do que o objeto realmente é.

Resposta certa É extremamente importante perceber que não importa como nos referimos a um objeto, o método que será invocado é sempre o mesmo! A JVM vai descobrir em tempo de execução qual deve ser invocado, dependendo de que tipo é aquele objeto, não importando como nos referimos a ele

3 respostas
solução!

É simples, você tem uma classe abstrata, e um metódo abstrato, e as classes conta poupança e corrente vão poder herdar da sua classe abstrata, sendo obrigada a implementar o metódo abstrato. você pode considerar assim: ContaPoupanca extends Conta == a dizer que ContaPoupanca é uma Conta (é um tipo de conta).

Por isso você pode usar um tipo genérico "Conta" e na hora de dar o new você escolhe qual das duas quer usar.

Conta cp = new ContaPoupanca();//Conta poupança e um tipo Conta, porque herda de conta
Conta cc = new ContaCorrente();//Conta corrente e um tipo Conta, porque herda de conta

ContaPoupanca cp = new ContaPoupanca();//e a mesma coisa so que você estaria perdendo o poder do polimorfismo.

ContaCorrente cc = new ContaCorrente();//e a mesma coisa so que você estaria perdendo o poder do polimorfismo.

Obrigado Odenilton. Eu não atentei para o tipo "Conta" ao instanciar cada objeto. Entendi agora. Obrigado

Por nada, é um prazer ajudar quando der, afinal ninguém detêm todo o conhecimento, bons estudos.