Super?

4 respostas
Renan_Amaro

tenho essas duas classes a Conta e a (superclasse)e a ContaCorrente e a (subclasse) estou tentanto pegar o metodo atualiza mas naum estou conseguindo da um erro not a statement o que será que pode ser ?

class Conta {
	
	protected double saldo;
	
	public void setSaldo(double saldo){
		this.saldo = saldo;
	}
	
	public void deposita(double valor){
		this.saldo += valor;
	}
	
	public void saca(double valor){
		this.saldo -= valor;
	}
	
	public double getSaldo(){
		return this.saldo;
	}
	
	public atualiza(double taxa){
		this.saldo += this.saldo * taxa;
	}    
}


class ContaCorrente extends Conta {
	
	public void atualiza(double taxa){
		// Da erro nessa linha
              super.atualiza()*2;
	}
	
	public void deposita(double valor){
		this.saldo += valor * 0.9962;
	}
	
}

4 Respostas

maquiavelbona

Me explica o que essa linha faz? Ela multiplica por 2 um retorno indefinido?
-Primeiro problema: a assinatura do método atualiza está incorreta, está faltando o tipo de retorno ( void, byte, int, ObjetoGrandeParaCaramba etc) ;
-Segundo problema: o que depois o seu método faz? Multiplica por 2 e… nada. Não joga o valor para lugar algum, não retorna e nem nada. Verifique isso.

Até!

J
Tente dessa maneira, na classe ContaCorrente:
public void atualiza(double taxa){   
        
              super.atualiza(taxa); //chama o método atualiza da classe Conta passando a taxa recebida pelo método atualiza da classe ContaCorrente
              this.saldo = this.saldo*2; //após saldo ter sido atualizado na classe Conta, o método atualiza de ContaCorrente processa a instrução seguinte, no caso, dobra o valor do saldo e o método é finalizado.  
    }

Atenção! O método atualiza da classe Conta está sem um tipo de retorno (void), pelo menos no código que vc colou aqui, isso também ocasionará erro.

G
class ContaCorrente extends Conta {

	void atualiza (double taxa) {
	super.atualiza(taxa);
	this.saldo = this.saldo * 2;
	}

	
	void deposita (double valor) {
	this.saldo += valor * 0.9962 ;
	}


}
class Conta {

	protected double saldo;


	double getSaldo() {
	return this.saldo;	
	}

	void deposita (double valor) {
	this.saldo += valor;	
	}

	void saca (double valor){
	this.saldo -= valor;
	}

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

Obrigado pessoal pela ajuda deu certo :wink:

Criado 7 de fevereiro de 2008
Ultima resposta 7 de fev. de 2008
Respostas 4
Participantes 4