Array aus Klasse um vererbte Elemente erweitern

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

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

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

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
P Array vom Typ Klasse Java Basics - Anfänger-Themen 18
D Array in Main Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 3
I Array Länge in Klasse festlegen Java Basics - Anfänger-Themen 1
Igig1 Welche Werte sind als default Werte in einem Array, der als Datentyp eine Klasse hat? Java Basics - Anfänger-Themen 1
J Fehler bei array aus anderer Klasse Java Basics - Anfänger-Themen 3
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
T Array verkleinern Java Basics - Anfänger-Themen 2
J Array aus Numberfield Eingaben Java Basics - Anfänger-Themen 7
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
Ü Zweidimensionales Array in der ersten Zeile deklarieren Java Basics - Anfänger-Themen 13
Thomas Uppe 2D Array Reihenfolge vermischen Java Basics - Anfänger-Themen 4
T array auslesen Java Basics - Anfänger-Themen 2
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
moini Auf Array aus Superklasse zugreifen? Java Basics - Anfänger-Themen 2
J ArrayList in 2D-Array konvertieren. Java Basics - Anfänger-Themen 48
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
Finn_lol Fehlermeldung bei Schleife mit Array Java Basics - Anfänger-Themen 4
Proxy Chars vor array übergabe toLowerUpcase Java Basics - Anfänger-Themen 14
iAmFaiinez Primzahlen Tester ohne Array Java Basics - Anfänger-Themen 4
S array 2 dimensional treppe Java Basics - Anfänger-Themen 3
S Array 2x2 Blöcke mit 0 und 1 Java Basics - Anfänger-Themen 10
C Array von Klassen Java Basics - Anfänger-Themen 2
julian0507 2Dim-Array Spaltensummen Java Basics - Anfänger-Themen 1
XWing Doppelte Zahlen im Array Java Basics - Anfänger-Themen 8
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
Proxy Stack erweitern mit neuem Array falls der alte voll ist!? Java Basics - Anfänger-Themen 5
E Array, nächste Zahl zur 5 ausgeben, wie? Java Basics - Anfänger-Themen 42
J Array.list vergleichen Java Basics - Anfänger-Themen 1
W Java-Code mit Array Java Basics - Anfänger-Themen 14
D Reflections & Generisches Array Java Basics - Anfänger-Themen 4
T Array Java Basics - Anfänger-Themen 2
T Array Java Basics - Anfänger-Themen 15
T Wörteranzahl im Array zählen Java Basics - Anfänger-Themen 9
Ostkreuz Zweidimensionaler Array Index Java Basics - Anfänger-Themen 2
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
R Images aus einem Array ausgeben Java Basics - Anfänger-Themen 3
R 2d Array individuell machen Java Basics - Anfänger-Themen 4
D 2D Char Array into String Java Basics - Anfänger-Themen 2
J Array Median bestimmen Java Basics - Anfänger-Themen 6
S Array Maximum bestimmen mit for und foreach Java Basics - Anfänger-Themen 7
S Prüfen ob ein zweidimensionales Array rechteckig ist Java Basics - Anfänger-Themen 4
N Array Java Basics - Anfänger-Themen 1
J Array Mittleren Wert bestimmen Java Basics - Anfänger-Themen 2
D OOP Array einem Objekt zuweisen Java Basics - Anfänger-Themen 2
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
S leeres Array statt Null Pointer Exception ausgeben Java Basics - Anfänger-Themen 20

Ähnliche Java Themen

Neue Themen


Oben