Se o método obterSalario fosse protected na classe Funcionár...
Atenção: Para responder à questão, considere as informações abaixo.
Considere a existência de um projeto chamado Prova criado com a IDE NetBeans, contendo as classes Principal, Funcionário, Mensalista e Diarista.
Classe Funcionário:
package classes;
public class Funcionário {
private int id;
private String nome;
private double valorRef;
public Funcionário(int id, String nome, double valorRef) {
this.id = id;
this.nome = nome;
this.valorRef = valorRef;
}
public Funcionário() {
} public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public double getValorRef() {
return valorRef; }
public void setValorRef(double valorRef) {
this.valorRef = valorRef;
}
public double obterSalario(){
return valorRef;
}
}
Classe Mensalista:
package classes;
public class Mensalista extends Funcionário{
private double horasExtras;
private double descontos;
public Mensalista(double horasExtras, double descontos, int id, String nome, double valorRef) {
super(id, nome, valorRef);
this.horasExtras = horasExtras;
this.descontos = descontos;
}
public double getDescontos() {
return descontos;
}
public void setDescontos(double descontos) {
this.descontos = descontos;
}
public double getHorasExtras() {
return horasExtras;
}
public void setHorasExtras(double horasExtras) {
this.horasExtras = horasExtras;
}
@Override public double obterSalario(){
return super.getValorRef() + horasExtras - descontos;
}
}
Classe Diarista:
package classes;
public class
Diarista extends Funcionário {
public int diasTrabalhados;
public Diarista(int diasTrabalhados, int id, String nome, double valorRef) {
super(id, nome, valorRef);
this.diasTrabalhados = diasTrabalhados;
}
public int getDiasTrabalhados() {
return diasTrabalhados;
}
public void setDiasTrabalhados(int diasTrabalhados) {
this.diasTrabalhados = diasTrabalhados;
}
@Override public double obterSalario(){
return super.getValorRef() * diasTrabalhados;
}
}
Classe Principal:
package principal;
import classes.Diarista;
import classes.Funcionário;
import classes.Mensalista;
public class Principal {
public static void main(String[] args) {
double sal01, sal02;
Funcionário fun01 = new Diarista(12, 1, "Maria Joaquina", 80.00);
Funcionário fun02 = new Mensalista(500.00, 200.00, 2, "Pedro Henrique",1500.00);
sal01 = fun01.obterSalario();
sal02 = fun02.obterSalario();
}
}