2012-02-07 14 views
-1

従業員の継承、ポリモーフィズム、および抽象クラス

  1. 抽象Employeeクラス、スーパー
  2. 給与従業員、継承 従業員の配列をemployeeManagerは、含まれていemploye
  3. から手数料 従業員継承従業員
  4. からHOurlyEmployee-継承
  5. 従業員からと
  6. 内に格納された配列と 従業員を管理するutitiliesを提供
  7. employeeDriver - メインメソッドと、ユーザが使用するメニューシステムを含みます。

だから私はそれらをすべてEmployeeManagerを除いて得たと思う。このクラスでは、私はEmployeeDriverからメソッドを持つ必要があることを知っています。 SalaryEmployeeHourlyEmployee、およびCommissionEmployeeの情報を入力する必要があるため、配列の操作方法がわかりません。ユーザーは、すべてのHOurlyEmployeesまたはSalaryEmployeesまたはcommisionEmployeesをその情報と共に一覧表示することもできます。私は配列をループする必要があることを知っているが、私はどのようにこれを行うか分からない。私を助けてください!ここ

+2

が鳴ります。運転手は給与を得るなどのオプションを持つメニューを提供します。ドライバはManager上で「getSalary()」を呼び出し、Managerはその従業員全員に対して「getSalary()」多相関数を呼び出します(あなたが言ったように配列をループします)。何を手に入れませんか? – John3136

+0

私がHoulyEmployeesをすべてリストアップする必要があるのは、employeeNumber、firstname、lastname、hoursworked、ectなどです。私が配列をループする場合、最初にどのようにすべてのものをリストするのですか、第二に、私は給与やコミットメントではなく、HOurlyEmployeesを取得するしかありません。 – kel

答えて

0

はスタートだ:EmployeeDriverは(HASA)EmployeeManagerが含まれているよう

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()); 
    } 
} 
関連する問題