Für meine Hausaufgaben, wir wurden beauftragt mit "erklären eine Reihe von vier" regulären "College-Mitarbeiter, drei Fakultät und sieben Studenten. Fordern Sie den Benutzer anzugeben, welche Art von Daten eingegeben werden (C, F, S) oder die Option zum Beenden (Q) .Während der Benutzer fortfährt, akzeptieren Sie die Dateneingabe für die entsprechende Person. Zeigen Sie eine Fehlermeldung an, wenn der Benutzer mehr als die angegebene Nummer für jeden Personentyp eingibt einen Bericht auf dem Bildschirm, der jede Personengruppe unter der entsprechenden Überschrift auflistet Wenn der Benutzer während einer Sitzung keine Daten für einen oder mehrere Personentypen eingegeben hat, wird eine entsprechende Nachricht unter der entsprechenden Überschrift angezeigt.Vererbung in Core Java
Class | Extends | Variables
--------------------------------------------------------
Person | None | firstName, lastName, streetAddress, zipCode, phone
CollegeEmployee | Person | ssn, salary,deptName
Faculty | CollegeEmployee | tenure(boolean)
Student | person | GPA,major
Nach dem Tutorials auf Vererbung zu lesen und eine Reihe von Vererbungs Diskussionen Trolling, ich glaube, ich es richtig auf dem Papier haben, würde aber eine Eingabe bevorzugen, bevor ich die Ellbogen tief in Code, der nicht funktioniert. :)
ich definieren
Person[x] = new Student();
(oder Faculty
oder CollegeEmployee
).
Die Person
Klasse hat alle Eingabefelder für ein Person
, und die Unterklassen haben nur die zusätzlichen Daten (beispielsweise major
im Fall von Student
).
Wenn ich die new Student();
die Eingabefelder sowohl in der People
und Student
Klassen erstellen, wird mir zur Verfügung stehen, weil Student
People
erstreckt und die zusätzlichen Variablen in Student
definiert sind, auf die Definition von Person
für diese Instanz angehängt.
Wenn es darum geht, Daten aus dem Array zu ziehen, sieht Java es als ein Array von Person
, also muss ich Logik hinzufügen
if Person[x] instanceof Student (or `Faculty` or `CollegeEmployee`)
die entsprechenden Aktionen für die Art von Person
auszuführen. Mein Gefühl ist, dass die instanceof
handelt, um zu überschreiben (in diesem Fall, an), was Java über die Person
Klasse auf der Ausgabeseite weiß.
Fehle ich irgendein kritisches Verständnis davon?
Wenn Sie 'instanceof' verwenden müssen, gibt es eine gute Chance, dass Sie etwas falsch machen ... –
Oder die Zuordnung Einschränkungen sind ein bisschen aus. Möglicherweise möchten Sie die genauen Zuweisungsanweisungen veröffentlichen. –
Person ist immer ein gefährliches Beispiel für die Vererbung. Als ich Student war, war ich zur gleichen Zeit College-Mitarbeiter. Besser als bei der (nicht multiplen) Vererbung kann eine solche Situation modelliert werden, indem man etwas wie "Rollen" auf eine Personeninstanz anwendet. – nansen