lunes, 1 de febrero de 2021

JAVA: Ejercicio sobre Herencia

El enunciado es: Cree una jerarquía de clases que represente el personal de una empresa. Para ello defina una clase abstracta con los atributos y métodos generales de cualquier empleado y varias subclases para distintos tipos de empleados.


Programador.java

package empleados;

public class Programador extends Empleado {
    
    public Programador(String dni) {
        super(dni,20000);
    }
    
    public void programar() {
        System.out.println("Estoy programando");
    }
}

ListaEmpleados.java
 
package empleados;

public class ListaEmpleados {

    private Empleado[] lista;

    public ListaEmpleados() {
        lista = new Empleado[10];
    }

    public boolean add(Empleado e) {
        for (int i=0; i<lista.length; i++) {
            if (lista[i] == null) {
                lista[i] = e;
                return true;
            }
        }
        return false;
    }

    public void remove(int i) {
        if (i < lista.length && i >= 0) {
            lista[i] = null;
        }
    }

    public boolean remove(String dni) {
        for (int i=0; i<lista.length; i++) {
            if (lista[i] != null) {
                if (lista[i].getDNI().compareTo(dni) == 0) {
                    lista[i] = null;
                    return true;
                }
            }
        }
        return false;
    }

    public void listar() {
        for (Empleado elto : lista) {
            if (elto != null) {
                System.out.print(elto.getDNI() + ": ");
                if (elto instanceof Gerente) {
                    System.out.print("gerente (");
                }
                if (elto instanceof Programador) {
                    System.out.print("programador (");
                }
                System.out.println(elto.getSueldo() + ")");
            }
        }
    }
}

Gerente.java

 
package empleados;

public class Gerente extends Empleado {
    
    public Gerente(String dni) {
        super(dni,100000);
    }
    
    public void reunion() {
        System.out.println("Estoy reunido");
    }
}

Empleados.java

 
package empleados;

public class Gerente extends Empleado {
    
    public Gerente(String dni) {
        super(dni,100000);
    }
    
    public void reunion() {
        System.out.println("Estoy reunido");
    }
}

Empleado.java

 
package empleados;

abstract public class Empleado {

    private String DNI;
    private int sueldo;
    
    public Empleado(String dni, int sueldo) {
        DNI = dni;
        this.sueldo = sueldo;
    }

    public String getDNI() {
        return DNI;
    }

    public void setDNI(String DNI) {
        this.DNI = DNI;
    }    

    public int getSueldo() {
        return sueldo;
    }

    public void setSueldo(int sueldo) {
        this.sueldo = sueldo;
    }
    
}

Puedes ver todos mis ejercicios de JAVA en este enlace.