Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Walter Aragão

sobreescrever um método usando o super

Recommended Posts

Pessoal , sou iniciante no java ..

comecei a fazer um curso e fico agora inventando alguns assuntos para eu desenvolver no java , porem surgiu uma dúvida em como sobreescrever um método utilizando o super.

 

tenho a classe pai :

 

 

public class Funcionario {

protected String nome;
protected String departamento;
protected double salario;
protected String dataEntrada;
protected String rg;
protected boolean ativo = true;
		String situacao;
void bonifica(double bonificacao){
	this.salario = this.salario + bonificacao;
}

void demite(){
	this.ativo = false;
}

void imprime (){
	if (this.ativo == false){
		situacao = "Funcionario ja desligado";
	}else{
		situacao = "Funcionario ativo";
	}
	System.out.println("Nome : "+ getNome() + "\n Departamento : "+ getDepartamento() + 
			"\n Salario : "+ getSalario()+"\n Data entrada : "+ getDataEntrada()+ 
			"\n RG : "+getRg()+ "\n Situacao : "+ situacao);

}

public void  setNome (String novoNome){
	this.nome = novoNome;

}

public String getNome () {
	return this.nome;
}

public void setDepartamento (String novoDepartamento ){
	this.departamento = novoDepartamento;
}

public String getDepartamento(){
	return this.departamento;

}

public void setSalario(double novoSalario){
	this.salario = novoSalario;
}

public double getSalario(){
	return this.salario;
}

public void setDataEntrada(String novaData) {
	this.dataEntrada = novaData;
}

public String getDataEntrada() {
	return this.dataEntrada;
}

public void setRg (String novoRg){
	this.rg = novoRg;
}

public String getRg() {
	return this.rg;
}


}


 

e queria reescrever o método bonifica , porem como utilizo o super para não precisar mudar na classe gerente o método uma vez que precise de alteração ?

 

public class Gerente extends Funcionario {

//sobreescrevento um método 
void bonifica(double bonificacao, double taxa){
	this.salario += bonificacao * taxa; // usar o super e multiplicar pela taxa ...
}

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só lembrando que você não está sobrescrevendo método algum. Está apenas sobrecarregando o método bonifica. Se entendi bem sua pergunta, a resposta é a seguinte.

 

public void bonifica(double bonificacao, double taxa) {
  super.bonifica(bonificacao * taxa);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.