Array befüllen

Windows10

Bekanntes Mitglied
Haben Vererbung gelernt!!
Ich stelle jetzt hier mein Problem bezogen auf Fahrzeuge (Basisklasse) und einer vererbten Klasse (alle anderen vererbten Klassen mache ich dann selber).

Code der Basisklasse:
Java:
public class Fahrzeug
{
    public String toString()
    {
        return null;
    }
}

Code der Klasse Motorrad, einer Unterklasse von Fahrzeug:
Java:
public class Motorrad extends Motorfahrzeug
{
    public Motorrad(int ps)
    {
        super(ps);
    }

    public String toString()
    {
        StringBuilder p=new StringBuilder();
        p.append(" Das Motorrad hat ");
        p.append(ps);
        p.append(" PS! ");
        String ps=p.toString();
        return ps;
    }
}
Der Code zu meinem Problem (das Problem ist die auskommentierte Zeile) :
Java:
public class Main
{
    public Fahrzeug[] printFahrzeuge(int ps,int anzahlGänge)
    {
        Out.println("Wie groß soll das Array sein?");
        int size=In.readInt();
        Fahrzeug[]fahrzeuge=new Fahrzeug[size];
        for(int i=0;i<fahrzeuge.length;i++)
        {
            Fahrzeug a=new Motorrad(ps);
            Motorrad b=(Motorrad)a;
                        if(a instanceof Motorrad)
            {
                //                 fahrzeuge[i]=a.toString();
            }
        }
        Out.println(fahrzeuge);
        return fahrzeuge;
    }
}
 

mrBrown

Super-Moderator
Mitarbeiter
fahrzeuge ist ein Array von Fahrzeugen, du versuchst dem aber einen String zuzuweisen. Da a (=Motorrad) selbst auch ein Fahrzeug ist, kannst du einfach a nehmen, statt toString drauf anzuwenden.

Den Teil mit b kannst du dir sparen, genauso wie das instaneof an der Stelle.
Sollte a kein Motorrad sein, schlägt bereits der Cast fehl, du kämest also gar nicht zu dem if. Und beim if weißt du schon, dass a Fahrzeug ist, für die Zuweisung ins Array ist nicht relevant, ob a auch Motorrad ist.
 

Flown

Administrator
Mitarbeiter
Allgemeines: Bitte mach dir doch die Mühe in ganzen deutschen Sätzen zu schreiben und eventuell auch noch eine Fehlerbeschreibung zu liefern.
Am besten ist es:
- Einen treffenden Titel zu wählen
- Eine ordentliche Fehlerbeschreibung zu liefern (Code oder Screenshots und vor allem einen StackTrace!, etc. beifügen)
- Die erhoffte Ausgabe hinzufügen
- Die aktuelle Ausgabe hinzufügen
- Am besten auch noch Beispieldaten mitliefern und dein Programm auf das wesentliche minimieren.
 

Windows10

Bekanntes Mitglied
fahrzeuge ist ein Array von Fahrzeugen, du versuchst dem aber einen String zuzuweisen. Da a (=Motorrad) selbst auch ein Fahrzeug ist, kannst du einfach a nehmen, statt toString drauf anzuwenden.

Den Teil mit b kannst du dir sparen, genauso wie das instaneof an der Stelle.
Sollte a kein Motorrad sein, schlägt bereits der Cast fehl, du kämest also gar nicht zu dem if. Und beim if weißt du schon, dass a Fahrzeug ist, für die Zuweisung ins Array ist nicht relevant, ob a auch Motorrad ist.
Warum gibt es dann bei mir, lauter Zahlen aus? Nur Zahlen, nicht den zu erwarteten Text!!
 

Neue Themen


Oben