Comparto de como quedó:
CLASE FUNCIONARIO
public class Funcionario {
private String nombre;
private double salario;
public double Bonificacion() {
return this.salario /* * 0.1 */; // si le agrego el * 0.1 me dará el porcentaje del Funcionario,
// Editor de Video y Designer
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getNombre() {
return nombre;
}
public void setSalario(double salario) {
this.salario = salario;
}
public double getSalario() {
return salario;
}
}
CLASE EDITOR DE VIDEO
public class EditorDeVideo extends Funcionario{
@Override
public double Bonificacion() {
return 150;
}
}
CLASES DESIGNER
public class Designer extends Funcionario {
@Override
public double Bonificacion() {
return 200;
}
}
CLASE CONTROLE BONIFICACION
public class ControleBonificacion {
private double suma;
public void registrar (Funcionario e) {
this.suma += e.Bonificacion();
}
public double getSuma() {
return suma;
}
}
CLASE TEST REFERENCIA
public class TestReferencias {
public static void main(String[] args) {
Funcionario f = new Funcionario();
f.setNombre("Marcos");
f.setSalario(5000.0);
EditorDeVideo edv = new EditorDeVideo();
edv.setSalario(2500.0);
Designer d = new Designer();
d.setSalario(2000.0);
ControleBonificacion controle = new ControleBonificacion();
controle.registrar(f);
controle.registrar(edv);
controle.registrar(d);
System.out.println(controle.getSuma());
}
}
EL RESULTADO EN LA CONSOLA ES DE 5350.0 YA QUE ES LA SUMA DE FUNCIONARIO Y LA DEL EDITOR DE VIDEO COMO LA DEL DISEÑADOR.
ESPERO HAYA ENTENDIDO LAS INSTRUCCIONES, SALUDOS.