2010-01-29 3 views
1

J'essaie d'obtenir une méthode de sous-classe pour renvoyer la variable de la superclasse, mais la valeur de retour continue à me donner des retours vides. Ma conjecture serait que je manque une sorte de référence à la super classe. C'est le poids de la valeur qui renvoie la valeur 0 (zéro) de la méthode de sous-classe poids de retour().La méthode de la sous-classe Java renvoie la valeur zéro

abstract class Vehicle{ 
    protected float weight; 
    public Vehicle(float weight){ 
    } 
    public abstract float returnweight(); 
} 

class Bike extends Vehicle{ 

    public Bike(float weight){ 
     super(weight); 
    } 
    public float returnweight(){ 
     return weight;//This returns as zero no matter what 
    } 
} 

Le code est condensé et traduit (non vérifié compilateur syntaxe dans ce post) Merci à l'avance!

Répondre

3

Vous avez:

public Fordon(float weight) { // What is Fordon? May be Vehicle is needed? 
    // No code here? 
    this.weight = weight; // Forgot this? 
} 

EDIT:

public Vehicle(float weight) { 
    // No code here? 
    this.weight = weight; // Forgot this? 
} 
+1

Mon mauvais! J'ai raté la traduction. Fordon = Véhicule. Corriger dans le code original – Tobias

+1

Oui, c'est tout! Une erreur de débutant. Puisque la superclasse est abstraite je me suis dit que je laisserais tout vide. Merci beaucoup pour l'aide! – Tobias

1

Indice: vous renvoyez en effet la seule valeur qui a déjà été affectée à weight, bien que, il est vrai, cette affectation est implicite. Peut-être que vous voulez dire explicitement attribuer une autre valeur à un moment donné? Peut-être pendant la construction?

+1

Merci pour votre réponse! Bien que ce soit un peu sur ma tête. Je ne suis pas un natif anglais et un vrai débutant. mais je vais google loin avec ce que vous m'avez donné :) Le code original inclut plus de variabels à vélo qui est pourquoi j'utilise une sous-classe – Tobias

2

Votre question est dans votre superclasse du véhicule, le constructeur ne fait rien.

il faut lire:

public Vehicle(float weight){ 
    this.weight = weight; 
} 

Cela permettra à votre classe de vélo (et toute autre classe qui étend véhicule pour cette matière) pour régler essentiellement le poids en appelant le constructeur de la superclasse;

Questions connexes