Crear la clase Empleado con las siguientes propiedades:
String Nombre
String DNI
double sueldo
En el constructor se requieren los tres valores y asignarlos en sus propiedades respectivas.
Haremos getters y setters de todas las propiedades (y estas privadas, por supuesto).
Crearemos una función sueldoNeto que nos devuelva el sueldo multiplicado por 0.9
De esta clase derivaremos la clase comercial.
Incorpora dos propiedades nuevas:
double ventas
double comision
Añadimos getter y setter a las propiedades.
SObreescribiremos la función sueldoNeto que será el sueldo multiplicado*0.9 más las ventas multiplicadas por la comisión.
De la clase Empleado derivaremos también la clase Administrativo
Tendrá la siguiente propiedad nueva:
int antiguedad.
Getter y setter.
Sobreescribiremos la función sueldoNeto para que devuelva el sueldo multiplicado * 0.9 + el sueldo multiplicado por la antiguedad dividido por 100
Empleado:
package com.trifulcas.clases; public class Empleado { private String nombre; private String dni; private double sueldo; public Empleado(String nombre, String dni, double sueldo) { // super: hace referencia a la clase madre // Dentro de la OOP en general siempre dentro de un constructor // Se llama al constructor de la clase madre si la hay super(); this.nombre = nombre; this.dni = dni; this.sueldo = sueldo; } public double sueldoNeto() { if (sueldo<1000) { return sueldo * .9; }else { return sueldo * .85; } } /** * @return the nombre */ public String getNombre() { return nombre; } /** * @param nombre the nombre to set */ public void setNombre(String nombre) { this.nombre = nombre; } /** * @return the dni */ public String getDni() { return dni; } /** * @param dni the dni to set */ public void setDni(String dni) { this.dni = dni; } /** * @return the sueldo */ public double getSueldo() { return sueldo; } /** * @param sueldo the sueldo to set */ public void setSueldo(double sueldo) { if (sueldo >= 650) { this.sueldo = sueldo; } } }
Comercial:
package com.trifulcas.clases; public class Comercial extends Empleado { private double ventas; private double comision; public Comercial(String nombre, String dni, double sueldo) { // super: Hace referencia a la clase madre super(nombre, dni, sueldo); } public double sueldoNeto() { // sueldo multiplicado * 0.9 + ventas * comision // No tengo acceso a sueldo // a) Cambiar visibilidad de sueldo a protected // b) Usar getSueldo() // c) Usar la función de la clase madre return super.sueldoNeto()+ventas*comision; } /** * @return the ventas */ public double getVentas() { return ventas; } /** * @param ventas the ventas to set */ public void setVentas(double ventas) { this.ventas = ventas; } /** * @return the comision */ public double getComision() { return comision; } /** * @param comision the comision to set */ public void setComision(double comision) { this.comision = comision; } }
Administrativo:
package com.trifulcas.clases; public class Administrativo extends Empleado { private int antiguedad; public Administrativo(String nombre, String dni, double sueldo, int antiguedad) { // super: hace referencia a la clase madre Empleado super(nombre, dni, sueldo); this.antiguedad=antiguedad; } public double sueldoNeto() { // Utilizando por un lado la función de la clase madre // Y por otro el acceso público a la propiedad sueldo return super.sueldoNeto() + getSueldo() * antiguedad / 100; } /** * @return the antiguedad */ public int getAntiguedad() { return antiguedad; } /** * @param antiguedad the antiguedad to set */ public void setAntiguedad(int antiguedad) { this.antiguedad = antiguedad; } }
Secretaria:
package com.trifulcas.clases; public class Secretaria extends Administrativo { private int posicion; public Secretaria(String nombre, String dni, double sueldo, int antiguedad) { // Hace referencia a la clase madre Administrativo super(nombre, dni, sueldo, antiguedad); posicion=0; } }