La solution la plus simple est de laisser Employee
Hériter de Person
. Ceci est naturel, car probablement un employé est une personne. Ils partagent même certains attributs, comme Name
(que vous aviez déjà dans votre code) et Age
.
class Person {
String Age;
String Name;
}
class Employee extends Person {
int Salary;
// String Name; not needed anymore, inherited from Person
}
Ensuite, il suffit d'avoir une liste des personnes List<Person>
, où vous pouvez stocker les deux types d'objets.
Si vous devez toujours les séparer pour une raison quelconque, vous pouvez ajouter une classe parent ou une interface commune. ajouter idéalement les méthodes nécessaires (comme l'affichage) dans l'interface et de laisser les classes les mettre en œuvre:
interface Human {
void showMe();
}
class Person implements Human {
String Age;
String Name;
public void showMe() { System.out.println("I am a Person!"); }
}
class Employee implements Human {
int Salary;
String Name;
public void showMe() { System.out.println("I am an Employee!"); }
}
Vous pouvez alors utiliser une liste de Human
s pour stocker les deux types d'objets. Itérer devient alors assez facile:
List<Human> humanList = new ArrayList<>();
// ... Populate the list with Persons and Employees
for(Human human : humanList) {
human.showMe();
}
Qu'en est-il d'avoir des employés étend personne et en utilisant une liste unique de la personne? – Davz