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.
 
T

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
A eine neue normale String-Array von einer String-Array, die in for schleife ist, schaffen Java Basics - Anfänger-Themen 1
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
M Array Summe bestimmen? Java Basics - Anfänger-Themen 14
parrot Array Übung Java Basics - Anfänger-Themen 25
parrot Array: Methode fügeHinzu Java Basics - Anfänger-Themen 13
parrot Array Java Basics - Anfänger-Themen 4
L 2 Dimensional Array werte überschreiben Java Basics - Anfänger-Themen 1
A char array wird überschrieben Java Basics - Anfänger-Themen 6
L Zufälliges 2d array befüllen Java Basics - Anfänger-Themen 27
L x und y Koordinaten in ein Array schreiben Java Basics - Anfänger-Themen 7
U Dreiecks-Matrix mit Array Java Basics - Anfänger-Themen 3
I Java zweidimensionales array befüllen mit for-schleife Java Basics - Anfänger-Themen 2
P Enums in Array abspeichern Java Basics - Anfänger-Themen 4
J Array Speicherplatz berechnen Java Basics - Anfänger-Themen 35
L Iterieren durch eine ArrayList. Integer Array wird übergeben Java Basics - Anfänger-Themen 17
Z Methoden Array horizontal spiegeln Java Basics - Anfänger-Themen 19
K Array alle Werte aufsummieren und ausgeben Java Basics - Anfänger-Themen 6
J zweidimensionales Array Java Basics - Anfänger-Themen 1
A Array Elemente extrahieren ! Java Basics - Anfänger-Themen 4
M Quiz in Java programmieren mit Array Java Basics - Anfänger-Themen 8
A Array aufaddieren ! Java Basics - Anfänger-Themen 5
F Auto String mit Array Name aus Datei... oder so ähnlich Java Basics - Anfänger-Themen 4
H Ein gegebenes Int Array zu Zwei Arrays zurück geben Java Basics - Anfänger-Themen 6
J Elemente in einem 2D-Array summieren Java Basics - Anfänger-Themen 6
J String aus einem Array entfernen Java Basics - Anfänger-Themen 10
J Array differenzieren Java Basics - Anfänger-Themen 2
M Rekursive Prüfung ob ein Array sortiert ist... Java Basics - Anfänger-Themen 4
J Methoden set Methode array Java Basics - Anfänger-Themen 2
I Array übernimmt immer den letzten Input. Java Basics - Anfänger-Themen 14
E 2D Array - char durch die Matrix "wandern" lassen Java Basics - Anfänger-Themen 7
Kirby_Sike Anzahl vorkommender Elemente im Array zählen Java Basics - Anfänger-Themen 9
A Array problem Java Basics - Anfänger-Themen 16
NeoLexx Variable für Array wird nicht korrekt übergeben Java Basics - Anfänger-Themen 45
F Integerzahl als Array halten Java Basics - Anfänger-Themen 4
1 Array nimmt falschen Wert auf! Java Basics - Anfänger-Themen 2
J Neue Werte in ein Array hinzugeben Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Anzeige

Neue Themen


Oben