sobreposição de método

Dá pra sobrepôr um método e chamar o método sobreposto?

Por exemplo:

public class Funcionário { public void aumentarSalário(double percentual) { this.salário += (percentual/100) * this.salário; } }

public class Professor extends Funcionário { public void aumentarSalário(double percentual) { super(percentual); this.salário += 100; } }

Sei que não tá correto, mas será q deu pra entender o que to querendo fazer?

[quote=cake]Dá pra sobrepôr um método e chamar o método sobreposto?

Por exemplo:

public class Funcionário { public void aumentarSalário(double percentual) { this.salário += (percentual/100) * this.salário; } }

public class Professor extends Funcionário { public void aumentarSalário(double percentual) { super(percentual); this.salário += 100; } }

Sei que não tá correto, mas será q deu pra entender o que to querendo fazer?[/quote]

Se vc quiser usar o método sobreescrito usando polimorfismo é so fazer:

[code]Funcionario func = new Professor();

func.aumentarSalario(20);[/code]

vc implementou quase certo, por dentro da classe se faz assim:

public class Professor extends Funcionário
{
	public void aumentarSalário(double percentual)
	{
		// a referência 'super' sozinha se refere ao construtor
		// para qlqr função de uma superclasse vc precisa colocá-la
		// depois da palavra, semelhanto como se faz com com 'this'
		super.aumentarSalário(percentual);
		this.salário += 100;
	}

	// vc tb pode chamar essa mesa funções através de outra,
	// ñ sendo necessáriamente a função que sobrescreve
	public void acrescentaBeneficios(double percentual)
	{
		super.aumentarSalário(percentual);
	}
}

flw, t+

Só uma dica…
Por convenção não se coloca acentuação em classes atributos nome de métodos etc… =)

abraço…

Quando vc chamar o metodo, este sera procurado na classe, não sendo encontrado, sera procurado nas classes maes ou super-classes.
Att.,