【发布时间】:2010-11-22 20:33:41
【问题描述】:
我有一个抽象类Employee,并在此基础上创建了以下子类:
FulltimeEmployeePartTimeEmployeeSalesman
以及一个独立的类,Orders。
我使用 Orders 类通过在 Salesman 构造函数中发送一系列订单来“描述销售员”:
public Salesman(String firstname, String lastname,int code, String address,
String city,int tk,int phone,String email,int deptcode,int card,
double hours,String cat,int orderno,double salary,
Orders[] order){
super( firstname, lastname, code, address, city, tk, phone, email, deptcode,
card, hours, cat );
this.orderno=orderno;
setBaseSalary( salary );
getSalary(orders);
/////////////////
}
稍后,我使用该数组来计算推销员获得的奖金,具体取决于他的销售额。
在main 中,我创建了一个Employee 类型的数组:
Employee employees[] = new Employee[ 7 ];
employees[ 0 ] = salary1;
employees[ 1 ] = salary2;
employees[ 2 ] = salary3;
employees[ 3 ] = partt1;
employees[ 4 ] = partt2;
employees[ 5 ] = sales1;
employees[ 6 ] = sales;
每行代表不同类型的员工(工资 = 全职,partt = 兼职,sales = 推销员)。
我的问题是我想使用employees 数组打印每个销售员的订单。 到目前为止我所做的是
for (int i=5;i<employees.length;i++){
System.out.printf("Orders of Salesman: %S %S",
employees[i].getName(),employees[i].getSurname());
System.out.printf(" Total amount(money) from orders: %,.0f ",
employees[i].earnings());
int j=0;
((Salesman)employees[i]).getOrderNo(arr) ;
//((Orders)employees[i]).getOrderNo();
System.out.printf("ordernumber: %d orderdate:%s description: %s
order amount(money): %,.0f\n ");
}
问题来了:
System.out.printf("ordernumber: %d orderdate:%s description: %s order amount(money): %,.0f\n ");
如何访问employees 数组上Salesman 对象内的orders 数组? 我尝试过强制转换,但它不起作用,因为 Orders 不是 Employee 的子类。
我需要它来打印,例如,
推销员的命令:john koun
订单总量:13000 每个销售员的订单
订单号:1 订单日期:10/2/2010 描述:机械销售订单金额:12000
订单号:2 订单日期:20/2/2010 描述:销售零件订单量:1000
【问题讨论】:
-
请提供您的
Salesman课程的完整列表 -
注意,构造函数参数被命名为
order,但是您将其称为orders。这段代码显然不会编译。
标签: java arrays casting object