Não estou conseguindo entender a Classe EmpAssalariado

Olá pessoal, boa noite!
Estou estudando JAVA na faculdade e fazendo aqui uma revisão me deparei com o código abaixo.
Minha dúvida está nessa linha:

public double salario(double abono){
return (getSalarioMensal());
}
pois o resultado é igual ao seguinte metodo:
public double salario(){
return (getSalarioMensal());
}

Qual a finalidade do professor ter colocado o metodo dessa forma:
public double salario(double abono){
return (getSalarioMensal());
}

[code]public class EmpAssalariado extends Empregado {
private double salarioMensal;

public EmpAssalariado(String nome, String sobrenome, String cpf, double salarioMensal){
	super(nome, sobrenome, cpf);
	setSalarioMensal(salarioMensal);		
}
public void setSalarioMensal(double salarioMensal){
	this.salarioMensal = salarioMensal;
}
public double getSalarioMensal(){
	return salarioMensal;
}
public double salario(){
	return (getSalarioMensal());
}
public double salario(double abono){
	return (getSalarioMensal());
}
public String toString(){
	return String.format(
		"%s%s %s\n%s%s\n%s%.2f\n%s%.2f\n",
		"Identificação: ", nome, sobrenome,
		"CPF: ", cpf, 
	    "Salario total: ", salario(),
		"Salario total com abono: ", salario(400));
}

}[/code]

Aqui segue a classe Principal:

[code]public class Principal {

public static void main(String[] args) {
	EmpFixoComissionado empregadoFC = new EmpFixoComissionado("Roberto", "Silveira", "123456789-10", 10000, 0.02, 0.01,
		300);
	EmpComissionado empregadoC = new EmpComissionado("Francisco", "Oliveira", "987654321-00", 20000, 0.02, 0.01);
	EmpAssalariado empregadoA = new EmpAssalariado("Joaquim", "Alberto", "192837465-99", 500);
	
	System.out.printf("\n%s: \n\n%s\n\n",
	"Informações do empregado assalariado:", empregadoA.toString());
}	

}[/code]

public double salario(){ return (getSalarioMensal()); } public double salario(double abono){ return (getSalarioMensal() + abono); }

Parece que ele esqueceu de somar o abono, assim ficaria desse jeito aí.

++

bem o que vejo que ele esta passando por parametro
para getsalariomesal()
o abono
e a outra funçao ele nao passa valor nenhum
pq poder ser decalha dois metodos
como mesmo nome
mais com paramentro diferente
tipo
public double getsalariomensal()
{
return ele passa o valor mais nao passa nenhum paramentro

}
public double getsalariomensal(double getsalariomensal)
{
aqui ele passa por paramentro
}

se ele passa um valor o valor vai cai do getsalariomensal
pq esta passando por parametro
pensa assim se ele nao passa nenhum valor
entao cai no primeiro get
entao nunca vai cai no primiero get nenhum
valor por isso ele mando por paramentro
para getsalariomensal() ;

isso ser chama sobrecarga metodos

outro exemplo simples tipo

public string getsalario(string salario)
{

}

public double getsalario(double salario)
{

}

e o mesmo nome
mais com tipo diferente
se ele passa uma string cai no metodo da string
se ele passa um double cai no metodo do double

espero te ajudo
acredito que foi isso que ele
quiz ensina
se nao foi desculpa
pelo menos se aprendeu algum novo
^^
flw abraço

Bacana xxjamisxx!
Vc chamou que o código do meu professor é uma sobrecarga de metodo.
Eu entendi perfeitamente a sua explicação.
A sobrecarga existe apenas para metodos? Explique mais sobre sbrecarga.

Desde já agradeço pela ajuda.

[quote=xxjamisxx]bem o que vejo que ele esta passando por parametro
para getsalariomesal()
o abono
e a outra funçao ele nao passa valor nenhum
pq poder ser decalha dois metodos
como mesmo nome
mais com paramentro diferente
tipo
public double getsalariomensal()
{
return ele passa o valor mais nao passa nenhum paramentro

}
public double getsalariomensal(double getsalariomensal)
{
aqui ele passa por paramentro
}

se ele passa um valor o valor vai cai do getsalariomensal
pq esta passando por parametro
pensa assim se ele nao passa nenhum valor
entao cai no primeiro get
entao nunca vai cai no primiero get nenhum
valor por isso ele mando por paramentro
para getsalariomensal() ;

isso ser chama sobrecarga metodos

outro exemplo simples tipo

public string getsalario(string salario)
{

}

public double getsalario(double salario)
{

}

e o mesmo nome
mais com tipo diferente
se ele passa uma string cai no metodo da string
se ele passa um double cai no metodo do double

espero te ajudo
acredito que foi isso que ele
quiz ensina
se nao foi desculpa
pelo menos se aprendeu algum novo
^^
flw abraço[/quote]