Duvida em capitulo pagina 39 da apostila Caelum, métodos com o mesmo nome?

Estou estudando Java pela apostila e venho seguindo os códigos, estou no capítulo de orientação a objetos pagina 39. Aqui eles estão construindo uma conta simples de banco com sacar, depositar, limite etc. e fui acompanhando fazendo o código porem chega aqui e da esse problema quando declaro o método boolean saca(double valor) da conflito com o void saca(double quantidade).

Como declarar esses dois métodos para que funcionem juntos?

class Conta  {
    int numero;
    String dono;
    double saldo;
    double limite;
	void saca(double quantidade) {
		double novoSaldo = this.saldo - quantidade;
		this.saldo = novoSaldo;		
	}
	void deposita(double quantidade) {
		this.saldo += quantidade;
	}
	boolean saca(double valor) {
		if(this.saldo < valor)
		{
			return false;
		}
		else
		{
			this.saldo -= valor;
			return true;
		}
	}
}

Não pode mesmo, os métodos tem a a mesmo delegate e isso em Orientação a Objeto não cria o overload do método, bem você sabe o que é overload?

No nosso forum já tem uma questão que explica isso:

##Leia é muito importante.


Sem ver a apostila fica complicado dizer, mas, acredito que esteja faltando alguma coisa no seu projeto de treinamento, de uma olhada a fundo, deve está faltando alguma coisa!


Um exemplo que funciona:

class Conta 
{
    int numero;
    String dono;
    double saldo;
    double limite;

	void saca(double quantidade)
	{
		double novoSaldo = this.saldo - quantidade;
		this.saldo = novoSaldo;		
	}
	void deposita(double quantidade){
		this.saldo += quantidade;
	}
	
	boolean saca(int valor)
	{
		if(this.saldo < valor)
		{
			return false;
		}
		else
		{
			this.saldo -= valor;
			return true;
		}
	}
}

Porque funciona? o método saca são diferentes agora, porque a quantidade de paramentos é igual mas, seu tipo é diferente, resumindo, quantidade, ordem e tipos diferentes você consegue criar métodos com o mesmo nome com delegates diferentes.

Isso é um exemplo só pra passar uma orientação, leia o link que é bem importante!

1 curtida

Boa muito obrigado, resolvi