如何将数据从主类移动到抽象类?

时间:2015-11-11 00:32:32

标签: java abstract

好的,所以我正在做一个收集员工信息的程序,并根据用户想要的方式对它们进行排序。我已成功创建了带有循环的数组来存储此信息,但是赋值要求我使用带有两个子类的抽象类来存储员工信息。所以我的问题是,如何将数据移动到这些抽象类中以准备排序和填充。

import java.util.Scanner;
import java.util.ArrayList;


public class Assignment55_000848913
{
  public static void main(String[] args)
  {
    Scanner in = new Scanner(System.in);
    ArrayList<String> Names       = new ArrayList<String>();
    ArrayList<String> Department  = new ArrayList<String>();
    ArrayList<String> Designation = new ArrayList<String>();
    ArrayList<Float>  Salary      = new ArrayList<Float>();
    String Continue = "y";

    //******************************************************//

    do
{
   System.out.println("Enter Employee Name: ");
   String x = in.next();
   Names.add(x);

   System.out.println("Enter Employee Designation ('temporary or permanent'): ");
   String y = in.next();
   Designation.add(y);

   System.out.println("Enter Employee Department: ");
   String z = in.next();
   Department.add(z);

   System.out.println("Enter Employee Salary: ");
   float i = in.nextFloat();
   Salary.add(i);

   System.out.println("Do you wish to add another employee? ('y'/'n'): ");
   Continue = in.next();
}
while(Continue.equals("y"));


  }

  public abstract class Employee
  {
  ////////
  }

  public class TempEmployee extends Employee
  {
    /////
  }

  public class PermEmployee extends Employee
  {
    /////
  }




}

3 个答案:

答案 0 :(得分:0)

尝试在抽象类的内部存储/创建列表(使用适当的访问器),而不是在主类中。这样,您可以创建临时员工或perm员工对象,然后将输入信息直接存储在您实例化对象时创建的列表中,该列表将存储在员工类中。希望这样帮助!

答案 1 :(得分:0)

您需要将公共信息:namedepartmentsalary存储为抽象类中的字段。然后,当您获得输入数据时,根据输入TempEmployee的内容创建新的PermEmployeedesignation。您可以将所有这些员工对象添加到ArrayList<Employee>,因为PermEmployeeTempEmployee都继承自Employee

答案 2 :(得分:0)

将所有字段移动到Employee class并添加一些方法用于排序和此类中的其他内容。你可以将这些方法改为抽象,在这种情况下你必须在子类中提供定义。

创建两个子类,如TempEmployeePermEmloyee继承Employee类。

实际上有很多方法可以做到这一点。