首页 > 解决方案 > 如何实例化抽象父类的列表

问题描述

这是练习的一部分。

在此处输入图像描述

我创建了一个名为 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);
    }
}

这是主要方法位置的结果:Address isLondonStar street16da description:mixer requiredEquipment:[]plannedDate:day:12 month:5 year:21

标签: java

解决方案


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

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

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

推荐阅读