[Java] Surcharge : aide

Bonjour,

Alors, j'ai essayé de faire une surcharge.

Ma question est : pourquoi lorsque je fais execute file, l'information n'apparaît pas?

Je vous transmets seulement le code d'une classe :


class Camion extends Vehicule
{
// définition des attributs
String vitesse;
String couleur;

// Constructeur
Camion(String saMarque,String sonFonctionnement,String saVitesse, String laCouleur)
{
// Appel du constructeur de la classe de base: Vehicule
super(saMarque,sonFonctionnement);

vitesse=saVitesse;

}

// définition des méthodes
void getInformation()
{
System.out.println("");
System.out.println("Information sur le camion:");
System.out.println("Marque:" + marque);
System.out.println("Fonctionnement:" + fonctionnement);
System.out.println("Vitesse:" + vitesse);
System.out.println("");
}

// Surcharge : Permet de définir dans la même classe plusieurs méthodes.
void getInformation(String laCouleur)
{
System.out.println("");
System.out.println("Information sur la couleur du camion:");
System.out.println("Couleur:" + couleur);
System.out.println("");
}

} // fin de la classe Camion

5 réponses

  1. Modérateur
    salut

    tu oublies de donner une valeur à "couleur" dans ton constructeur
    1. Modérateur
      en fait deux erreurs dans ta classe

      class Camion extends Vehicule 
      { 
      // définition des attributs 
      String vitesse; 
      String couleur; 
      
      // Constructeur 
      public Camion(String saMarque,String sonFonctionnement,String saVitesse, String laCouleur) 
      { 
      // Appel du constructeur de la classe de base: Vehicule 
      super(saMarque,sonFonctionnement); 
      
      
      this.vitesse=saVitesse; 
      this.couleur = laCouleur;
      
      } 
      
      // définition des méthodes 
      public void getInformation() 
      { 
      System.out.println(""); 
      System.out.println("Information sur le camion:"); 
      System.out.println("Marque:" + marque); 
      System.out.println("Fonctionnement:" + fonctionnement); 
      System.out.println("Vitesse:" + vitesse); 
      System.out.println(""); 
      } 
      
      // Surcharge : Permet de définir dans la même classe plusieurs méthodes. 
      public void getInformation(String laCouleur) 
      {
      this.couleur = laCouleur;
      System.out.println(""); 
      System.out.println("Information sur la couleur du camion:"); 
      System.out.println("Couleur:" + couleur); 
      System.out.println(""); 
      } 
      
      
      
      
      
      } // fin de la classe Camion
      1. Modérateur
        essaye ça ...

        public class Camion extends Vehicule { 
        
        // définition des attributs 
        
        private String vitesse; 
        private String couleur; 
        
        // Constructeur 
        public Camion(String saMarque,String sonFonctionnement,String saVitesse, String laCouleur) {
        
        // Appel du constructeur de la classe de base: Vehicule
         
        super(saMarque,sonFonctionnement); 
        
        
        this.setVitesse(saVitesse);
        this.setCouleur(laCouleur); 
        
        }
        
        private void setVitesse(string vitesse){
        
               this.vitesse = vitesse;
        }
        
        private void setCouleur(String couleur){
        
              this.couleur = couleur;
        }
        
        //exemples de surcharge de méthodes 
        
        public void changeTypeCamion(String vitesse){
        
               this.setVitesse(vitesse);
        
        }
        
        public void changeTypeCamion(String vitesse, String couleur){
        
             this.setVitesse(vitesse);
             this.setCouleur(couleur);
        
        }
        
        // définition des méthodes 
        public void getInformation() 
        { 
        System.out.println(""); 
        System.out.println("Information sur le camion:"); 
        System.out.println("Marque:" + marque); 
        System.out.println("Fonctionnement:" + fonctionnement); 
        System.out.println("Vitesse:" + vitesse); 
        System.out.println(""); 
        System.out.println("Couleur:" + couleur);
        } 
        
        
        } // fin de la classe Camion
        1. fonctionne pas ce code :

          public void getInformation(String laCouleur)
          {
          this.couleur = laCouleur;
          System.out.println("");
          System.out.println("Information sur la couleur du camion:");
          System.out.println("Couleur:" + couleur);
          System.out.println("");
          }
          1. Modérateur
            j'ai testé la classe décrite au point 3 et ça marche nickel