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

Exercício 3 - Herança reescrita e polimorfismo

Pessoal, o compilador javac não aceitou quando eu codifiquei as classes filhas contaCorrente e contaPoupanca como: public class contaCorrente extends conta e public class contaCorrente extends conta. Quando eu retirei o public ele compilou. É isso mesmo?

5 respostas

Oi Sergio, tudo bem?

Pode colocar o código das suas classes aqui pra gente ver?

Abraços!

Oi Sergio, boa noite!

Você está tentando criar a classe ContaCorrente e ContaPoupança no mesmo arquivo .java que a classe Conta? Se sim é normal esse tipo de problema, pois só podemos ter uma classe pública por arquivo .java

OBS: Até podemos ter mais de uma classe pública dentro de um arquivo .java, só que essa classe tem que está dentro da própria classe pública principal. Esse tipo de classe é chamada de Inner Class e é um assunto que vai ser abordado mais na frente.

Abraços!

Olá Carlos Eduardo e Leonardo Cordeiro,

Eu resolvi o problema retirando a declaração public das classes contCorrente e contaPoupanca e compilou. Percebi que o compilador deu a dica de que se quisermos ter várias classes public elas terão de vir em arquivos .java diferentes. Segue como o código ficou:

public class conta { protected double saldo; // public double getSaldo () { return this.saldo; }// public void deposita (double valor) { this.saldo += valor; } // public void saca (double valor) { this.saldo -= valor; } // public void atualiza (double taxa) { this.saldo += this.saldo taxa; } } class contaCorrente extends conta { public void atualiza (double taxa) { this.saldo += this.saldo taxa * 2; }

} class contaPoupanca extends conta { public void atualiza (double taxa) { this.saldo += this.saldo taxa 3; } public void deposita (double valor) { this.saldo += valor - 0.10; }

} class atualizadorDeContas { private double saldoTotal = 0; private double selic; // atualizadorDeContas (double selic) { this.selic = selic; }

} class TestaContas { public static void main(String[] args) { conta c = new conta(); conta cc = new contaCorrente(); conta cp = new contaPoupanca(); // c.deposita(1000.0); cc.deposita(1000.0); cp.deposita(1000.0); // c.atualiza(0.01); cc.atualiza(0.01); cp.atualiza(0.01); // System.out.println(c.getSaldo()); System.out.println(cc.getSaldo()); System.out.println(cp.getSaldo()); } }

solução!

Legal Sérgio, parabéns!

Obrigado Leonardo"