BlueJ Methoden Vererbung

Keksz

Mitglied
Hallo Leute,

hab ein Problem bei meinen Hausaufgaben und bin auch noch Anfänger was Java betrifft.
Problem ist folgendes.
Ich habe 2 Subklassen namens Fahrrad und Pedelec und eine Oberklasse Fahrzeug.

Die Subklassen vererben ihre Methoden die in beiden Klassen exestieren in die Oberklasse, außer die einmaligen Methoden wie z.B. akkuLaden() für das Pedelec und z.B. federgabelSperren() für das Fahrrad. Soweit so gut. Mit super() im Konstruktor der Subklassen wird initialisiert usw.

Nun das Problem.
In der Subklasse Pedelec habe ich folgende Methode noch stehen:
Java:
    public void tretenMitUnterstützung(int zeit, int kraft)
    {
        if(kraft > 100) kraft = 100;
        if(kraft < 0) kraft = 0;
        
        // Reicht der Akku? Sonst haben wir keine Unterstützung
        if (akkuladung == 0) kraft /= 2;
        
         // Die Kraft, mit der getreten wird, begrenzt die Höchstgeschwindigkeit
        float erreichbareGeschwindigkeit = hoechstGeschwindigkeit * kraft / 100;
        
        float kilometerStart = kilometerstand;
               
        bewegen(zeit, erreichbareGeschwindigkeit, kraft / 1000.0f);
        
        // Wieviel Akkuladung wurde verbraucht?
        akkuladung -= (kilometerstand - kilometerStart) / akkuReichweite * 100;
        if(akkuladung < 0) akkuladung = 0;
    }

Die Variable hoechstGeschwindigkeit macht mir nun hier Probleme, da diese ja in der Oberklasse vererbt worden ist. (has private access in Fahrzeug)

Wie regel ich denn sowas dann? Einfach die ganze Methode in die Oberklasse zu verschieben geht ja nicht, da hier wieder Paramter wie akkuladung und akkuReichweite nur in der Subklasse vorhanden sind und da auch bleiben sollen.

Danke schonmal im vorraus. :)
 

Final_Striker

Top Contributor
Du fügst der Fahrzeug Klasse die Methoden

[c]float getHoechstGeschwindigkeit(){..} [/c]

[c]void setHoechstGeschwindigkeit(float g){..} [/c]

hinzu, und verwendest diese dann in der Pedelec Klasse.
 

Neue Themen


Oben