Ich habe eine abstrakte Klasse namens Benutzer, ein Benutzer kann entweder als Student-Typ oder als Lehrer-Typ erstellt werden. Ich habe eine Arraylist von Benutzern (von Schülern und Lehrern) gemacht und was ich versuche zu tun ist, ein Verfahren Beispiel nenne je nachdem, was das aktuelle Objekt ist eine Instanz:Mehrere Objekttypen in einer ArrayList
for (User user : listOfUsers) {
String name = user.getName();
if (user instanceof Student) {
// call getGrade();
} else { // it is an instance of a Teacher
// call getSubject();
}
}
Das Problem, das ich habe, ist, Da es sich um eine ArrayList von User-Objekten handelt, kann die Student-Methode, beispielsweise getGrade(), nicht abgerufen werden. Da ich jedoch feststellen kann, was der aktuelle Benutzer ist, bin ich neugierig, ob es immer noch möglich ist, eine bestimmte Methode aufzurufen, je nachdem, um welchen Benutzertyp es sich handelt.
Ist das möglich, oder muss ich die Benutzertypen in separate Listen trennen?
Bitte antworten Sie bald, vielen Dank.
Helfen Sie mir meine Antwort zu verbessern und kommentieren Abstimmung? – user987339
Große Antwort. Link, Definition und Beispiel Vielleicht solltest du sonst 'if (userinstanceof Teacher) {}' machen und ein "else" ganz unten für das Standardverhalten setzen. –
Tnx @Nappa The Saiyan! – user987339