Ejemplos polimorfismo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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 + "]";
    }
     
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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;
    }
     
     
     
}
1
2
3
4
5
6
public class Directivo extends Empleado {
    @Override
    public double sueldoNeto() {
        return super.sueldoNeto()*2;
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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);
     
}

Publicado por

Juan Pablo Fuentes

Formador de programación y bases de datos