通过多态性从主类调用toString



我有一个算法,它有一个名为Employee的泛型类和一些从Employee继承的特定类,如下所示:

abstract class Employee {
private String name;
private String document;
public String toString(){
return "nName and Document";
}
}
class Driver extends Employee {
private String licencePlate;
public String toString(){
return "Plate: XXXXX";
}
}
class TelOperator extends Employee {
private String phone;
public String toString(){
return "Phone: XXX - XXXXXX";
} 
}
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
TelOperator telOp = new TelOperator();
System.out.println(telOp);
Driver driver = new Driver();
System.out.println(driver);
}
}

我正在寻找一些方法来避免分别调用每个对象,并从主类执行toString方法,从继承的特定类执行toString方法。我的输出是这样的:

//驱动

  1. 名称和文档
  2. 铭牌:XXXXX

//电话助理

  1. 名称和文档
  2. 电话:XXX-XXXXX

您可以在此处查看源代码。

只需在子类的toString()方法中添加对super.toString()的调用:-

public String toString() {
return super.toString() + "nPhone: XXX - XXXXXX";
}

如果您想同时打印出两个对象,则必须创建子类的一个对象,并在main的toString中调用它们的toString。希望我能正确理解你的问题。

您可以为员工创建一个Factory类,由工厂决定哪个子类应该返回到调用程序。然后,它创建该子类的一个实例,然后将其返回给调用程序。

希望我能正确理解你的问题。

最新更新