[Resolvido]Super não funciona com argumentos

3 respostas
gRoOve

Seguinte, tenho a super classe:

class Conta {
	// Decaração de atributos
	protected double saldo;

	// Declaração de métodos
	void deposita(double valor) {
		this.saldo += valor;
	}

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

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

	double getSaldo() {
		return this.saldo;
	}
}

e a subclasse:

class contaCorrente extends Conta {
	public void atualiza(double taxa) {
	    super.atualiza(taxa) * 2;
	}

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

Quero usar o super para referenciar o método atualiza, pois quero que na subclasse seja feito a mesma coisa que na superclasse porém seja multiplicado por 2.
Ocorre que quando estou dentro da subclasse, e chamo super. nem aparece o método atualiza. O que estou fazendo errado?

3 Respostas

gRoOve

Galera, podem desconsiderar…meu compilador não tava completando automaticamente com o ctrl+espaço.
Fiz assim:

super.atualiza(taxa * 2);

e funcionou de boa…só não entendi pq ele não completou automaticamente "/
Limpei e recompilei o projeto, mas nda "/

Francisco_Silva

Legal que esteja funcionando, mas acho que o motivo de não ter funcionado antes foi porque você estava mutiplicando 2 com o suposto retorno do metodo atualizar da super classe, que na verdade não retorna nada pois seu retorno esta configurado como void, ou seja 2 * “nada”.

public void atualiza(double taxa){} não retorna nada.

super.atualiza(taxa) * 2; não funciona porque não tem nada que possa ser multiplicado com 2.

super.atualiza(taxa * 2); Nesse caso funcionol porque você esta calculando o valor no argumento, antes de efetivamente processar o metodo atualizar da super classe.

Mas ja que esta funcionando agora isso não importa muito, só respondi mesmo para te informar esse detalhe.

gRoOve

Independente disso, quando digitava super. já não aparecia o método para seleção, não entendi oq ocorreu, pode ter sido um bug do netbeans, vai saber, hehe :slight_smile:

Criado 8 de dezembro de 2010
Ultima resposta 9 de dez. de 2010
Respostas 3
Participantes 2