У меня есть домашняя работа о системе управления больницей.Я в основном закончил, но у меня есть проблема с полиморфизмом.В моем проекте у меня есть 6 классов и 1 тестовый класс.Эти 6 классов: доктор, амбулаторный пациент, стационар, пациент и человек.Класс «Доктор» и «Пациент» расширяют класс «Персона», а класс «В / амбулаторно» расширяет класс «Пациент».Мой учитель говорит, что у доктора теперь есть только один список для пациентов, в который можно добавить как стационарных, так и амбулаторных пациентов (полиморфизм).Этот список определяется в частном порядке.Итак, недавно добавленные методы addPatient / removePatient будут использоваться для добавления / удаления пациентов в / из этого списка.
Как я могу это сделать?Какой класс я должен написать в / амбулаторный список массивов.Вот мой код
Doctor.java
public class Doctor extends Person{
private int staffId;
private double salary;
public ArrayList<Patient> patients = new ArrayList<Patient>();
public ArrayList<Inpatient> inpatients = new ArrayList<Inpatient>();
public ArrayList<Outpatient> outpatients = new ArrayList<Outpatient>();
...
public void addPatient(Patient a) {
JFrame j=new JFrame();
for (int i = 0; i < patients.size(); i++) {
if ( (patients.get(i)).getRegistrationId() == a.getRegistrationId()) {
JOptionPane.showMessageDialog(j,"Patient already added before!");
return;
}
}
patients.add(a);
}
public void removePatient(int registrationId) {
for (int i = 0; i < patients.size(); i++) {
if (patients.get(i).getRegistrationId() == registrationId) {
patients.remove(i);
}
}
}
test.java
public static void main(String args[]){
...
Doctor d = new Doctor(111222, "ali", 50, "m", "ankara", 6000); //staffId, name, age, sex, address, salary
h.addDoctor(d);
Inpatient in = new Inpatient(333444, "veli", 32, "m", "istanbul", 345.40, 410);
d.addPatient(in); //Inpatient in is registered to Doctor d.
Outpatient out = new Outpatient(555666, "helin", 28, "f", "izmir", 610.35);
d.addPatient(out); //Outpatient out is registered to Doctor d.
...