java - 如何实例化抽象父类的列表
问题描述
这是练习的一部分。
我创建了一个名为 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
解决方案
如图所示,您的图像没有显示有关使用(或定义)您的设备子类的任何内容
但是参数的重点是作业可以使用多个任意设备类型
List<Equipment> e = new ArrayList<>();
e.add(new ConcreteMixer("concrete"));
Job j = new Job(..., e,...);
推荐阅读
- python - python - 如何将变量放在python中的一个sting字典中?
- django - django 2 部署到 heroku 失败 - at=error code=H10 desc="App crashed"
- javascript - 计算器功能的javascript承诺
- php - 如何将一个人添加到 mysql json 数组中?
- r - 灵活判别分析的问题
- aws-api-gateway - 无法通过 gzip 使用 API 网关
- javascript - Ajax 在点击事件上发送多个/重复调用
- ms-access - 将记录添加到记录集/将字段添加到表
- python - pyserial EOT 作为终结者
- html - 为什么将块级元素放置在锚元素中是不合适的?