Herança e Polimorfismo!

Ajuda do Capitulo 7.7 Caelum!!!

ta dando erro na classe main, no c.deposita cc.deposita

A Main

[code]public class Main {

public static void main(String[] args) {
       AtualizadorDeContas teste = new AtualizadorDeContas(0.01);  
      
    Conta c = new Conta();  
    ContaCorrente cc = new ContaCorrente();  
    ContaPoupanca cp = new ContaPoupanca();  
      
    c.deposita(1000);  
    cc.deposita(1000);  
    cp.deposita(1000);  
      
    teste.roda(c);  
    teste.roda(cc);  
    teste.roda(cp);  
      
    System.out.println("Saldo Total: " + teste.getSaldoTotal());  
      
}  

}

[/code]

a conta corrente

[code]public class ContaCorrente extends Conta {

    public void atualiza(double taxa)  
    {  
        this.saldo *= (2 * taxa);  
    }  
      
    public void deposita(double valor)  
    {  
        this.saldo += valor * 0.000;  
    }  

}
[/code]

conta poupança

[code]public class ContaPoupanca extends Conta {
void atualiza (double taxa){
this.saldo += this.saldo * taxa * 3;
}

}
[/code]

a conta

[code]public class Conta {
protected double saldo;

    public void deposita (double valor)  
    {  
        this.saldo += valor;  
    }  
      
    public void saca (double valor)  
    {  
        if (valor < saldo)  
        {  
            System.out.printf("Você sacou %d", valor);  
            this.saldo -= valor;  
        }  
          
        else  
            System.out.println("Você não possui saldo suficiente.");  
    }  
      
    public double getSaldo()  
    {  
        return this.saldo;  
    }  
      
    public void atualiza (double taxa)  
    {  
        this.saldo = this.saldo * taxa;  
    }  
  }

}
[/code]

o atualizador…

[code]public class AtualizadorDeContas {

    private static double saldoTotal = 0;  
    private double selic;  
      
    AtualizadorDeContas(double selic)  
    {  
        this.selic = selic;  
    }  
      
    public void roda(Conta c)  
    {  
        //saldo anterior  
        System.out.println(c.getSaldo());  
  
        //atualiza conta  
        c.atualiza(0.01);  
          
        //saldo final  
        System.out.println(c.getSaldo());  
          
        this.saldoTotal += c.getSaldo();   
    }  
      
    public double getSaldoTotal ()  
    {  
        return this.saldoTotal;  
    }  
  
}  

[/code]

esta dando erro no cc.deposita,c.deposita e cp.deposita!!!

Primeiramente, coloque seu código entre as tags .
Que erro que está ocorrendo?

Leia aqui como fazer: http://www.guj.com.br/java/50115-vocnovo-no-guj-vai-criar-um-tico-e-colar-seu-cigo-fonte-leia-aqui-antes-por-favor

Boa Noite
Testei o teu código e encontrei dois erros, um na linha 30 da classe conta (uma chave sobrando) e na linha 02 da conta poupança (faltou o public para sobrescrever o método). Não testei a lógica apenas a sintaxe.
Erro:
[size=12]atualiza(double) in ContaPoupanca cannot override atualiza(double) in Conta; attempting to assign weaker access privileges; was public[/size]

Boa noite,

Eu também testei o código e realmente faltou colocar o public no método atualiza da classe ContaPoupanca.

Obs.: Se tiver alguma classe com um x em vermelho emcima, significa que a mesma está com erro de sintaxe, entre outros, você entra na classe e lá do lado direito da tela do lado da barra de rolagem fica um quadrado vermelho é só clica nele que você vai direto pro erro.


Cara na sua classe ContaPoupanca no metodo atualiza fico faltando o modificador de acesso public

public void atualiza(double taxa)
{
   this.saldo += this.saldo * taxa * 3;
}

Agora como nosso amigo Daniel Girotto falou, também não estou esse erro que você mencionou.

Bom dia a todos.

Alguns comentários sobre herança:

O método abaixo da Conta Corrente:

 
 // Método da classe Conta Corrente que herda (extende) de Conta (Sub classe)
 public void deposita(double valor)    
 {    
       this.saldo += valor * 0.000;    
 }

 // Sobrescreve  o método da classe Conta (Super Classe)
 public void deposita (double valor)    
 {    
      this.saldo += valor;    
 }

Repare que os dois métodos tem a mesma assinatura, assim sendo há a sobrescrita do método que tem quase a mesma implementação, neste caso, o ideal seria implementá-lo na classe Conta Corrente desta forma:

 public void deposita (double valor)    
 {    
      super.deposita(valor * 0.000);     
 }

 // Considerando que em operação matemática, todo número multiplicado por 0 (zero) é igual 0 (zero), então seria mais lógico implementar assim:

 public void deposita (double valor)    
 {    
      super.deposita(0.000);     
 }

Sinceramente não entendi esse método deposita em Conta Corrente, pois como foi dito acima, a multiplicação por zero, implica em não fazer depósito nenhum, assim sendo o saldo fica inalterado, tornando nula a ação do método deposita