public class Empleado { private String nombre; protected int sueldo; // getters y setters public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } public void setSueldo(int sueldo) { if (sueldo>900 && sueldo <10000) { this.sueldo = sueldo; } } public double sueldoNeto() { return sueldo*.87; } @Override public String toString() { return "Empleado [nombre=" + nombre + ", sueldo=" + sueldo + "]"; } }
public class Comercial extends Empleado { private double comision; private int ventas; public double getComision() { return comision; } public void setComision(double comision) { this.comision = comision; } public int getVentas() { return ventas; } public void setVentas(int ventas) { this.ventas = ventas; } @Override public double sueldoNeto() { return super.sueldoNeto()+ventas*comision; } }
public class Directivo extends Empleado { @Override public double sueldoNeto() { return super.sueldoNeto()*2; } }
ArrayList<Vehiculo> tropa=new ArrayList<>(); tropa.add(new Coche()); // Un coche es un vehículo tropa.add(new Bicicleta()); // Esto también tropa.add(new Coche()); tropa.add(new Tanque()); // Y eso también lo es for(Vehiculo v:tropa) { v.acelerar(); // al acelerar estoy llamando al método de cada objeto v.derecha(); System.out.println(v); } Empleado pepe=new Empleado(); pepe.setSueldo(1000); Comercial ana=new Comercial(); ana.setSueldo(1000); ana.setComision(.05); ana.setVentas(20000); Directivo antonio=new Directivo(); antonio.setSueldo(5000); ArrayList<Empleado> empresa=new ArrayList<>(); empresa.add(pepe); empresa.add(ana); empresa.add(antonio); int total=0; for(Empleado e:empresa) { total+=e.sueldoNeto(); System.out.println(e.sueldoNeto()); } System.out.println(total); }