通过多态从主类调用 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 - XXXX

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


炎炎设计
浏览 141回答 3
3回答

慕的地10843

只需super.toString()在您的子类的toString()方法中添加调用:-public String toString() {    return super.toString() + "\nPhone: XXX - XXXXXX";}

肥皂起泡泡

您可以为员工创建一个 Factory 类,然后由工厂决定应将哪个子类返回给调用程序。然后它创建该子类的一个实例,然后将其返回给调用程序。希望我正确理解了你的问题。

www说

如果您想同时打印出两个子类,则必须创建子类的对象并在主类的 toString 中调用它们的 toString。希望我能正确理解你的问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python