Solución de Sistema de Gestión de Empleados
Interfaz Bonificable
public interface Bonificable {
double calcularBono();
}
Clase Empleado
public class Empleado {
private String nombre;
private int ID;
private double salarioBase;
public Empleado(String nombre, int ID, double salarioBase) {
this.nombre = nombre;
this.ID = ID;
this.salarioBase = salarioBase;
}
public double calcularSalario() {
return salarioBase;
}
public void mostrarDetalles() {
System.out.println("ID: " + ID + ", Nombre: " + nombre + ", Salario Base: " + salarioBase);
}
// Getters
public String getNombre() {
return nombre;
}
public int getID() {
return ID;
}
public double getSalarioBase() {
return salarioBase;
}
// Setters
public void setNombre(String nombre) {
this.nombre = nombre;
}
public void setID(int ID) {
this.ID = ID;
}
public void setSalarioBase(double salarioBase) {
this.salarioBase = salarioBase;
}
}
Clase Gerente
public class Gerente extends Empleado implements Bonificable {
private double bonoAnual;
public Gerente(String nombre, int ID, double salarioBase, double bonoAnual) {
super(nombre, ID, salarioBase);
this.bonoAnual = bonoAnual;
}
@Override
public double calcularSalario() {
return super.calcularSalario() + calcularBono();
}
@Override
public double calcularBono() {
return bonoAnual;
}
@Override
public void mostrarDetalles() {
super.mostrarDetalles();
System.out.println("Bono Anual: " + bonoAnual);
}
}
Clase Empresa
import java.util.ArrayList;
import java.util.List;
public class Empresa {
private List<Empleado> empleados;
public Empresa() {
empleados = new ArrayList<>();
}
public void añadirEmpleado(Empleado empleado) {
empleados.add(empleado);
}
public void mostrarEmpleados() {
for (Empleado empleado : empleados) {
empleado.mostrarDetalles();
System.out.println("Salario Total: " + empleado.calcularSalario());
System.out.println();
}
}
}
Clase Main
public class Main {
public static void main(String[] args) {
Empresa empresa = new Empresa();
Empleado empleado1 = new Empleado("Juan", 1, 30000);
Gerente gerente1 = new Gerente("Ana", 2, 50000, 10000);
empresa.añadirEmpleado(empleado1);
empresa.añadirEmpleado(gerente1);
empresa.mostrarEmpleados();
}
}
Last updated