我的代码有这个问题。 我创建一个具有两个实例变量的 Employee 类:
private String name, department;
然后我创建了另一个名为 Tradesman 的类,它是 Employee 的扩展,但有一个额外的实例变量:
private String trade;
现在我所做的是创建一个 print()
方法,该方法将:A) 在 Employee 类中,打印姓名和部门 。 B) 在 Employee 中使用的相同方法将在 Tradesman 中创建(从而覆盖它),该方法将打印额外的一个元素,即交易。现在的问题是,我创建了另一个名为 Staff 的类,它将包含一些元素的 Object
类型的数组,并且我必须实现 hire()
方法、fire()
方法和一个 put()
方法将打印整个数组。直到打印的那一刻,一切都是酷而邪恶的。我正在努力解决如何打印它,因为每个类都有 print()
方法,但它必须取决于类型...如果我将该方法转换为Employee 我将失去 Tradesman Class 的 trade 元素,例如:
void put(){
for (Object a:objArray){
((Employee)a).print();
}
}
这是错误的。因为如果我雇用一名商人,此方法将不会打印交易。如何处理这个问题呢?提前致谢!干杯^^
最佳答案
"Cause if I hire a Tradesman, this method won't print the Trade"
你错了,它会的。如果Employee
实际上是一个Tradesman
,调用 print()
会打电话Tradesman.print()
。如果它被重写,那么将调用重写方法。如果你的所有数组对象都是 Employee
,只需使用 Employee[]
而不是Object[]
所以你不必做那些无用的转换。
"I want to implement an array of both Tradesman and Employee... One array that will contain both, Tradesman and Employee combined."
Employee[]
将同时持有 Tradesman
是 Employee
。同样在 Java 中,我建议您使用 List
( List<Employee>
在你的例子中),它比数组更易于管理。
关于java - 打印包含继承成员的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19770279/