Array aus Klasse um vererbte Elemente erweitern

V

Valerie96

Neues Mitglied
Hallo ihr Lieben,

Ich stehe vor volgendem Problem:

- Es wurde ein Array aus einer Klasse erstellt.
- Diese Klasse hat geerbte Klassen
- Nun sollen im Array der Basisklasse Elemente eingefügt werden, die zur einer geerbten Klasse gehören.

z.B.:
-------------------------------------Hauptkalsse Person:-------------------------------------
public Person(String name, int alter, int grosse) {
this.name = name;
this.alter = alter;
this.groesse = groesse;

-------------------------------------geerbte Klasse Beruf:-------------------------------------
public Sportler(String name, int alter, int grosse, String sportart) {
super(name, alter, grosse, sportart);
this.sportart = sportart;
------------------------------------------------------------------------------

Array ist erstellt: z.B.:

static Person[0] array = new Person[4];

Wie füge ich nun in das Array mit der Basisklasse Elemente der geerbten Klasse hinzu? Folgendes scheint zu funktionieren:

array[0] = new Persob("Sabi", 12, 160, "Tennis");

Nur bei der Ausgabe gibt es dann Fehler. Folgendes funktioniert NICHT: (Es scheitert an: sportart)

System.out.println(array[0].name +" " + array[0].alter +" " +array[0].grosse +" " +array[0].sportart);


Bzw. es ist schlicht nicht möglich, da die Basisklasse nur 3 Elemente beinhaltet..
Was mache ich falsch? Vorgabe ist, dass der Typ des Arrays die Basisklasse sein muss..
 
A

affot

Mitglied
Na mit super() rufst du ja eben den Konstruktor der Basisklasse auf.
Da diese nicht mit 4 Parametern definiert ist darfst du ihn dann auch nur mit den dreien aufrufen.
Den Fehler dürfte es dann aber eigentlich nicht nur bei der Ausgabe sondern schon bei der Instanziierung geben wenn ich mich gerade nicht irre...
Ansonsten sollte es dann so passen.
 
mihe7

mihe7

Top Contributor
Ich stehe vor volgendem Problem:

- Es wurde ein Array aus einer Klasse erstellt.
- Diese Klasse hat geerbte Klassen
- Nun sollen im Array der Basisklasse Elemente eingefügt werden, die zur einer geerbten Klasse gehören.
Das ist überhaupt kein Problem. Die abgleitete Klasse steht zur Basisklasse in einer "is-a"-Beziehung. Du sagst also, jeder Sportler ist (auch) eine Person - die Umkehrung gilt natürlich nicht. Aus dem Grund ist
Java:
Person person = new Sportler(...);
zulässig,
Java:
Sportler sportler = new Person(...);
dagegen nicht.

Ob die Personen nun in einem Array gehalten werden oder nicht, spielt natürlich keine Rolle.
 
temi

temi

Top Contributor
Ergänzend zur Ausführung von @mihe7 noch:

Dein Array ist vom Typ Person, d.h. wenn du folgendes versuchst:
Nur bei der Ausgabe gibt es dann Fehler. Folgendes funktioniert NICHT: (Es scheitert an: sportart)

System.out.println(array[0].name +" " + array[0].alter +" " +array[0].grosse +" " +array[0].sportart);
dann funktioniert das nicht, weil eben ein Arrayelement (z.B. array[0]) vom Typ Person ist und Person verfügt nicht über die Instanzvariable "sportart".

Du könntest den Typ allerdings casten (umwandeln) mit Sportler sportler = (Sportler)array[0];. Das funktioniert natürlich nur, wenn es sich bei dem im Array gespeicherten Laufzeittypen tatsächlich um einen Sportler handelt.
Java:
// Sportler ist eine Person, darum funktioniert dieses:
Person person = new Sportler(); // der statische Typ ist Person, der Laufzeittyp ist Sportler

System.out.println(person instanceof Person); // true
System.out.println(person instanceof Sportler); // true
System.out.println(person instanceof Pilot); // false

Sportler sportler = (Sportler)person; // der Laufzeittyp von person ist Sportler, darum kann gecastet werden

// Angenommen Pilot erbt ebenfalls von Person
// Dennoch führt dieses zu einer ClassCastException
Pilot pilot = (Pilot)person; // !!!FEHLER!!! Sportler kann nicht zu Pilot gecastet werden!
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
Z Matrix Klasse mit Mehrdimensionalen Array (Addition, Multiplikation, to String) Java Basics - Anfänger-Themen 57
T KLasse das bessere Array Java Basics - Anfänger-Themen 16
S Java Array Länge aus anderer Klasse lesen Java Basics - Anfänger-Themen 1
K Klasse mit einer Array-Eigenschaft Java Basics - Anfänger-Themen 4
F Auf Array einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 4
K Klassen Array einer anderen Klasse ... Java Basics - Anfänger-Themen 21
J Array Objekte einer Klasse zuordnen Java Basics - Anfänger-Themen 15
S Auf Array einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 13
H Best Practice Klasse mit Array clonen Java Basics - Anfänger-Themen 8
W Erste Schritte füllen Attribute java Klasse in for Schleife und Array Java Basics - Anfänger-Themen 16
S Daten aus Array in Klasse übertragen Java Basics - Anfänger-Themen 12
C Anfänger: Array + Klasse Java Basics - Anfänger-Themen 5
T Array in andere Klasse verwenden Java Basics - Anfänger-Themen 3
U Methoden Zugriff auf Array von weiterer Methode einer Klasse, Rückgabewert Problem Java Basics - Anfänger-Themen 5
E Array von Objekten einer selbst definierten Klasse mit eindeutigem Namen Java Basics - Anfänger-Themen 2
G Klassen Array durch eine Klasse aufrufen Java Basics - Anfänger-Themen 4
B Fehlermeldung bei Klasse mit array Java Basics - Anfänger-Themen 3
S Klassen Array: Übergabe von Klasse zur Main Java Basics - Anfänger-Themen 8
A Array aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 9
F Adressverwaltungsprogramm: Objekte einer Klasse in Array Java Basics - Anfänger-Themen 6
J Variablen Array aus anderer Klasse auslesen-Wie verhindert man eine NullPointerException? Java Basics - Anfänger-Themen 4
A Auf Array in gesamter Klasse zugreifen Java Basics - Anfänger-Themen 6
H Methoden Array aus Punkten erzeugen, mittels Punkt-Klasse Java Basics - Anfänger-Themen 5
B Array aus Klasse zurück geben Java Basics - Anfänger-Themen 2
D Klassen Problem mit Eigener Array-Klasse Java Basics - Anfänger-Themen 10
F Array als Instanz einer Klasse Java Basics - Anfänger-Themen 8
C Referenzen zu Instanzen einer Klasse im Array Java Basics - Anfänger-Themen 8
K Klasse als Array Java Basics - Anfänger-Themen 3
C Klassen Array-Klasse gesucht Java Basics - Anfänger-Themen 4
L Methoden Auf statische Methode einer anderen Klasse zugreifen, die Array zurückgibt Java Basics - Anfänger-Themen 3
A Ein Array aus einer Klasse wird nicht sauber abgefüllt Java Basics - Anfänger-Themen 4
A Array einer eigenen Klasse sortieren Java Basics - Anfänger-Themen 11
G Eigene Klasse als Array, zugriff? Java Basics - Anfänger-Themen 2
K Generische Klasse mit innerer Klasse | Problem mit Array Java Basics - Anfänger-Themen 6
L Klasse in array schreiben Java Basics - Anfänger-Themen 2
T Char Array in fremder Klasse Java Basics - Anfänger-Themen 20
A Mehrere Instanzen einer eigenen Klasse in einem Array Java Basics - Anfänger-Themen 5
F Array aus selbstdefinierter Klasse Java Basics - Anfänger-Themen 6
J Zugriff auf ein Array über eine andere Klasse Java Basics - Anfänger-Themen 7
F Array einer eigenen Klasse erstellen. Java Basics - Anfänger-Themen 8
D "Ueber"-Klasse? / Label Array Probleme Java Basics - Anfänger-Themen 2
M probleme mit array (als attribut einer klasse) Java Basics - Anfänger-Themen 2
F Array einer eigenen Klasse Java Basics - Anfänger-Themen 5
C Array in Klasse aber keinen Zugriff Java Basics - Anfänger-Themen 7
V Array in andere Klasse laden Java Basics - Anfänger-Themen 12
P Array in Klasse geht nich Java Basics - Anfänger-Themen 8
N array klasse Java Basics - Anfänger-Themen 7
T Array über Klasse instanziieren Java Basics - Anfänger-Themen 5
G Array Objekte Klasse Java Basics - Anfänger-Themen 9
M Aus einer Klasse auf Array einer anderen zugreifen. WIE? Java Basics - Anfänger-Themen 4
X Zwei Dimensionales Array prüfen Java Basics - Anfänger-Themen 0
J Array Elemente werden nicht gefunden! Java Basics - Anfänger-Themen 6
K Rahmen erstellen mit mehrdimensionalem Array Java Basics - Anfänger-Themen 1
TimoN11 Array mit unterschiedlichen längen aktualisieren, dann als Methodenwert einsetzen Java Basics - Anfänger-Themen 1
G Bubblesort Array der Größe 10 Java Basics - Anfänger-Themen 1
M Initialen mit Array wiedergeben Java Basics - Anfänger-Themen 3
J Objekt-Array dynamischer Länge aus Benutzereingaben erstellen Java Basics - Anfänger-Themen 6
G Java 2-dimensionalen int-Array Summe Java Basics - Anfänger-Themen 2
G Array Werte addieren Java Basics - Anfänger-Themen 4
C Größte Zahl aus einem Array ermitteln(als statische Methode) Java Basics - Anfänger-Themen 31
G Methoden Methode die aus einem Array ein Index ausgibt? Java Basics - Anfänger-Themen 2
L Array Rotation Java Basics - Anfänger-Themen 4
D Ausgabe von Array Java Basics - Anfänger-Themen 2
R String in char-Array übertragen Java Basics - Anfänger-Themen 5
D Input/Output fehlerhafter Algorithmus zum Ersetzen von Array-Werten nach logischem Schema Java Basics - Anfänger-Themen 1
J Ist es möglich einen int Array wirklich leer zu initialisieren oder zu füllen? Java Basics - Anfänger-Themen 21
P Datentypen Array und String Java Basics - Anfänger-Themen 2
Zeppi Array Java Basics - Anfänger-Themen 2
kazzam94 Methode soll Array von Boolean zurückgeben Java Basics - Anfänger-Themen 5
Zeppi Jagged Array Java Basics - Anfänger-Themen 6
J Buchstabenhäufigkeit mit Array und Ausgabe des häufigsten Buchstaben Java Basics - Anfänger-Themen 25
B Konstruktor mit Array als Parameter Java Basics - Anfänger-Themen 3
U Muster in einem Array erkennen Java Basics - Anfänger-Themen 8
L Array mit Wörtern gestalten Java Basics - Anfänger-Themen 2
Gaudimagspam Nummern generieren Array Java Basics - Anfänger-Themen 4
Eule25 Methode mit Array Java Basics - Anfänger-Themen 4
J Methoden Frage: Array-Werte in anderer Methode ändern Java Basics - Anfänger-Themen 4
FelixN Array mit verschiedene Datentypen als Rückgabewert? (Long und Double) Java Basics - Anfänger-Themen 3
P Nutzer entscheiden lassen, wie viele Zahlen dieser in ein Array eingeben möchte. Java Basics - Anfänger-Themen 6
J Array; Elemente kopieren Java Basics - Anfänger-Themen 17
JD_1998 Array-Position aus einer Methode in einer anderen ausgeben (Kurze Frage) Java Basics - Anfänger-Themen 2
JD_1998 Random Array sortieren mit Hilfe einer Methode Java Basics - Anfänger-Themen 4
M Objekte in Array speichern und ausgeben Java Basics - Anfänger-Themen 17
C Array-Werte werden gemischt, ohne Logik Java Basics - Anfänger-Themen 2
A eine neue normale String-Array von einer String-Array, die in for schleife ist, schaffen Java Basics - Anfänger-Themen 3
A keine Ergebnisse - String nummer in array nummer converting Java Basics - Anfänger-Themen 1
Z Char Array an zufälligen stellen mit einem "x" füllen. Java Basics - Anfänger-Themen 4
P JSON-Array auf Excel-Spalten verteilen? Java Basics - Anfänger-Themen 5
J Array über Getter erlangen Java Basics - Anfänger-Themen 34
K Übergabe von Werten (zweidimensionales Array) aus einer Methode an zweidimensionales Array in main() Java Basics - Anfänger-Themen 3
T Array füllen Java Basics - Anfänger-Themen 11
P Was genau bringt mir es ein Array in eine Liste zu bringen Java Basics - Anfänger-Themen 3
S Auf Array aus Objekten zugreifen? Java Basics - Anfänger-Themen 1
G Variablen Array Länge über den Konstruktor definieren Java Basics - Anfänger-Themen 4
A Speicherbereich von Array nicht zusammenhängend? Java Basics - Anfänger-Themen 8
S Java Array Probleme Java Basics - Anfänger-Themen 3
S Java Array Problem... Java Basics - Anfänger-Themen 2
C 2dimensionales array, Lagerverwaltung Java Basics - Anfänger-Themen 64
P Verschachtelte Array Liste Java Basics - Anfänger-Themen 2
P Performance Array und Liste Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Anzeige

Neue Themen


Oben