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);
}