【发布时间】:2021-03-17 06:49:11
【问题描述】:
如何在界面中创建 addWorker? OfficeWorker 继承自 Worker,现在我想为少数 Worker 制作接口。我不知道如何正确地做到这一点。 void addWorker(Worker worker) 和 void addWorker(Worker worker) 错误。
界面
public interface TypeOfWorker {
void addWorker(Worker worker);
}
办公室工作人员
public class OfiiceWorker extends Worker implements TypeOfWorker {
private int officeID;
private int intelectl;
private List<OfiiceWorker> ofiiceWorkers = new ArrayList<>();
public OfiiceWorker(String name, String surname, int age, int experience, String street, int building,
int local, String city, int officeID, int intelectl) {
super(name, surname, age, experience, street, building, local, city);
this.officeID = officeID;
this.intelectl = intelectl;
}
@Override
public void addWorker(OfiiceWorker ofiiceWorker) {
ofiiceWorkers.add(ofiiceWorker);
}
}
工人
public abstract class Worker {
private int identifier;
private String name;
private String surname;
private int age;
private int experience;
private String street;
private int building;
private int local;
private String city;
public Worker() {
}
public Worker(String name, String surname, int age, int experience, String street, int building, int local,
String city) {
setIdentifier();
this.name = name;
this.surname = surname;
this.age = age;
this.experience = experience;
this.street = street;
this.building = building;
this.local = local;
this.city = city;
}
public void setIdentifier() {
this.identifier = (int) (System.currentTimeMillis() / 1000);
}
}
【问题讨论】:
-
也许你应该解释你想用你的界面实现什么,否则很难帮助你。此外,您当前的解决方案看起来像一个糟糕的设计,OfiiceWorker 的每个实例都将包含其他实例的列表。你为什么要这个,这个列表不应该在另一个类中,而不是像某种 Worker 处理程序类。
标签: java inheritance interface