【问题标题】:how to Instantiate the list of abstract parent class如何实例化抽象父类的列表
【发布时间】:2021-10-10 12:56:51
【问题描述】:

这是练习的一部分。

我创建了一个名为 Equipment 的抽象父类,它有四个子类,如 ConcreteMixer 所示。然后练习让我创建一个名为 Job 的类,它的构造函数如图所示。看不懂list参数的意思,但还是按照它的要求创建了一个类,并设置在main函数中实例化。

这是实例化的结果。不知道这个参数实例化的结果跟 Equipment 及其子类有什么关系

public abstract class Equipment {
        String requirement;
        public Equipment(String requirements){
            this.requirement=requirements;
        }
        public String getRequirement() {
        return requirement;
    }
}

public class ConcreteMixer extends Equipment{

    public ConcreteMixer(String requirement){
        super(requirement);
    }

    public String toString(){
        return  requirement;
    }

    @Override
    public boolean equals(Object obj) {
        if(obj instanceof ConcreteMixer) {
            ConcreteMixer that = (ConcreteMixer) obj;
            return this.requirement.equals(that.requirement);
        } return false;
    }
}


public Job(Address location, String description,List<Equipment> requiredEquipment, Date plannedDate) {
        this.location = location;
        this.description = description;
        this.requiredEquipment = requiredEquipment;
        this.plannedDate = plannedDate;
}
public static void main(String[] args) {
        Job s= new Job(new Address("Star street",16, "da","London"),"mixer",new 
        ArrayList<Equipment>(),new Date(12,5,21));
        System.out.println(s);
    }
}

这是 main 方法的结果 位置:地址是伦敦星街16da 描述:混合器 所需设备:[] 计划日期:天:12 月:5 年份:21

【问题讨论】:

    标签: java


    【解决方案1】:

    如图所示,您的图像没有显示使用(或定义)您的设备子类

    但参数的重点是job可以使用多个任意设备类型

    List<Equipment> e = new ArrayList<>();
    e.add(new ConcreteMixer("concrete"));
    Job j = new Job(..., e,...);
    

    【讨论】:

    • 这是一个文本描述,表明该设备应满足此特定工作的任何特殊要求。定义以下方法: public Equipment(String requirements) Post:使用提供的参数初始化字段。接下来我们需要从 Equipment 扩展的 4 个不同的类;这些类没有任何附加属性。 ConcreteMixer JackHammer ScaffoldingTower Torch 为每个接受字符串要求的类实现一个构造函数,并将此值传递给父级(设备)的构造函数。
    • 问题是我如何通过main方法中的list来使用或创建任何设备类型的对象倍数,比如new Arraylist
    • 您不能将手提钻添加到混凝土搅拌机列表中。您可以将其添加到设备列表中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-21
    • 2017-02-05
    相关资源
    最近更新 更多