2012-02-07 3 views
-1

Je dois créer un programme comportant 6 classes.Héritage des employés, polymorphisme et classes abstraites

  1. abstraite classe superclasse employé
  2. Salaire employé-Hérite de employé
  3. EmployeIntermittent-inherits de l'employé
  4. commission employé-Hérite de employe
  5. employeeManager contient tableau de employés et fournit les moyens de gérer le tableau et Employés stockés au sein de
  6. employeeDriver: contient la méthode principale et un système de menus à utiliser par l'utilisateur.

Donc je pense que je les ai tous sauf EmployeeManager. Dans cette classe, je sais que je dois avoir les méthodes de EmployeeDriver. Je ne suis pas sûr comment travailler le tableau parce que je dois mettre dans l'information pour SalaryEmployee, HourlyEmployee, et CommissionEmployee. L'utilisateur peut également choisir de lister tous les employés de HOurlyEmployés ou SalaryEmployees ou commisionEmployees ainsi que leurs informations. Je sais que je dois parcourir le tableau, mais je ne sais pas comment faire tout cela. Aidez-moi, s'il vous plaît!

+2

Sons comme EmployeeDriver contient (HasA) EmployeeManager. Le conducteur donne un menu avec des options comme obtenir un salaire. Le pilote appellera "getSalary()" sur le gestionnaire et le gestionnaire appellera la fonction polymorphe "getSalary()" sur tous ses employés (boucle dans le tableau comme vous l'avez dit). Qu'est-ce que tu n'as pas? – John3136

+0

bien comme si j'ai besoin d'énumérer tous les HoulyEmployees, y compris leur employeeNumber, prénom, nom de famille, heures de travail, ect. Si je fais une boucle dans le tableau, d'abord comment puis-je lister toutes ces choses, ensuite comment puis-je obtenir seulement les employés de l'HO, pas le salaire ou la commission? – kel

Répondre

0

est ici un début:

import java.math.BigDecimal; 
import java.util.*; 
abstract class Employee { 
    Employee(String name) { 
     this.name = name; 
    } 
    final String name; 
} 
class SalariedEmployee extends Employee { 
    SalariedEmployee(String name, BigDecimal salary) { 
     super(name); 
     this.salary = salary; 
    } 
    public String toString() { 
     return getClass().getSimpleName() + " " + name + " " + salary; 
    } 
    final BigDecimal salary; 
} 
class HourlyEmployee extends Employee { 
    HourlyEmployee(String name, BigDecimal hourlyRate) { 
     super(name); 
     this.hourlyRate = hourlyRate; 
    } 
    public String toString() { 
     return getClass().getSimpleName() + " " + name + " " + hourlyRate; 
    } 
    final BigDecimal hourlyRate; 
} 
class CommissionEmployee extends Employee { 
    CommissionEmployee(String name, BigDecimal percentage) { 
     super(name); 
     this.percentage = percentage; 
    } 
    public String toString() { 
     return getClass().getSimpleName() + " " + name + " " + percentage + "%"; 
    } 
    final BigDecimal percentage; 
} 
class Manager { 
    public String toString() { 
     return Arrays.asList(employees).toString(); 
    } 
    Employee[] employees = new Employee[] { new SalariedEmployee("joe", BigDecimal.valueOf(4567.89)), 
      new HourlyEmployee("mary", BigDecimal.valueOf(12.34)), 
      new CommissionEmployee("bob", BigDecimal.valueOf(12.34)) }; 
} 
public class Main { 
    public static void main(String[] args) { 
     System.out.println(new Manager()); 
    } 
} 
Questions connexes