///
Considere as classes a seguir, presentes em uma aplicação Java orientada a objetos:
public class Funcionario {
private int id;
private String nome;
private double valorBase;
public Funcionario() {
}
public Funcionario(int id, String nome, double valorBase) {
this.id = id;
this.nome = nome;
this.valorBase=valorBase;
}
public double getValorBase() {
return valorBase;
}
public double calcularSalario(){
return valorBase;
}
}
public class Mensalista extends Funcionario{
private double descontos;
public Mensalista(double descontos, int id, String nome, double
valorBase) {
super(id, nome, valorBase);
this.descontos = descontos;
}
@Override
public double calcularSalario(){
return super.getValorBase() - descontos;
}
}
public class Diarista extends Funcionario {
private int diasPorSemana;
public Diarista( int diasPorSemana, int id, String nome, double
valorBase) {
super(id, nome, valorBase);
this.diasPorSemana = diasPorSemana;
}
@Override
public double calcularSalario(){
return super.getValorBase() * diasPorSemana;
}
}Em uma classe principal foram digitadas, no interior do método main, as seguintes linhas:
double s;
Funcionario f;
f=new Diarista(3,10456,"Ana Maria",90);
s = f.calcularSalario();
System.out.println(s);
f=new Mensalista(298.56,10457,"Pedro Henrique",877.56);
s = f.calcularSalario();
System.out.println(s);As linhas que contêm a instrução s = f.calcularSalario(); demonstram um conceito da orientação a objetos conhecido como