You are on page 1of 2

ALUMNO: SANTOS ADILSON ESTEBA CRUZ GRUPO: “B”

POLIMORFISMO CON ARREGLOS

public class Employee {


private String nombre;

public Employee(String n) {
nombre = n;
}
public double getPay() {
return 0.0;
}
public void printPay() {
System.out.println(nombre + ": " + getPay());
}
}

public class Salaried extends Employee{


private double salary;

public Salaried(String n, double s) {


super(n);
salary = s;
}
public double getPay() {
return salary;
}
}

public class Hourly extends Employee{


private double hourlyRate;
private double hours = 0;

public Hourly(String n, double rate) {


super(n);
hourlyRate = rate;
}
public double getPay() {
return hours*hourlyRate;
}
public void addHours(int h) {
hours += h;
}
public void restart() {
hours = 0;
}
}
ALUMNO: SANTOS ADILSON ESTEBA CRUZ GRUPO: “B”

import java.util.*;
public class Principal {
static Scanner scan = new Scanner(System.in);
public static void main(String[] args) {
ArrayList<Employee> personal = new ArrayList<Employee>();
int respuesta;
System.out.println("Lista de opciones: ");
System.out.println("1.Agregar empleado con salario fijo");
System.out.println("2.Agregar empleado con salario por hora");
System.out.println("3.Salir");
do {
System.out.print("Ingrese su opción: ");
respuesta = scan.nextInt();
switch (respuesta) {
case 1: System.out.println("Ingrese nombre, salario");
personal.add(new Salaried(scan.next(),scan.nextDouble()));
break;
case 2: System.out.println("Ingrese nombre, pago por hora");
personal.add(new Hourly(scan.next(),scan.nextDouble()));
break;
case 3: System.out.println("Saliendo...");
break;
default: System.out.println("Opción inválida");
break;
}
}
while(respuesta != 3);
//day tue=1,wed=2,thur=3,fri=4,sat=5,sun=6,mon=0
for (int day = 1 ; day <= 30 ; day++) {
for (Employee e:personal)
if(e instanceof Hourly) {
((Hourly) e).addHours(8);
if (day%7 == 4) {
System.out.print(day+": ");
e.printPay();
((Hourly) e).restart();
}
}
else
if (day%15 == 0) {
System.out.println(day+": ");
e.printPay();
}
}
}
}

You might also like