Héritage

amine -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
je suis un débutons en java il y a un problème dans mon programme et ce que vous pouviez m'aider svp:


package vehicule;
import java.util.Scanner;
public class Vehicule {
    protected String marque;
    protected String nom;
    protected int model;
    protected int nbrechauveux;
    public  Vehicule(String marque,String nom,int model,int nbrechauveux){
    this.marque=marque;
    this.model=model;
    this.nom=nom;
    this.nbrechauveux=nbrechauveux;
    }
    public class Voiture extends Vehicule{
        int maxnbreper;
        public Voiture(String marque, String nom, int model, int nbrechauveux,int maxnbreper) {
            super(marque, nom, model, nbrechauveux); 
            this.maxnbreper=maxnbreper;
        }
    } 
    public class Camion extends Vehicule{
        private double maxpoids;
      public Camion(String marque, String nom, int model, int nbrechauveux, double maxpoids){
    super(marque, nom, model, nbrechauveux);
      this.maxpoids=maxpoids;
              }
    }
    public static void main(String[] args) {
        // TODO code application logic here
        Vehicule tab[] = new Vehicule[2] ;
        tab[0]= new Voiture("fiat","uno",1994,6,5);
        tab[1]= new Camion("man","max",2003,12232.65);
        for(int j=0;j<2;j++){
        System.out.println("notre vehicule "+j+" "+tab[j]);
        }
     System.out.println("merci pour votre patient");
    }
}

2 réponses

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Bonjour,

Le problème ici c'est que tu fais
new Camion("man","max",2003,12232.65);
alors que le constructeur est
public Camion(String marque, String nom, int model, int nbrechauveux, double maxpoids)
, il te manque donc le "nbrechauveux"
Pour info, ça s'écrit : chevaux.

Ensuite viennent d'autres erreurs, liées au fait que tu as mis toutes tes classes les unes dans les autres, ce qui est possible en Java, mais ne fait pas du tout ce que tu veux. Donc mets toutes les classes dans des fichiers séparés, te ne les imbrique pas.
0
Utilisateur anonyme
 
Bonjour,

les guillemets ouvrants doivent être refermés ... commence par la classe Vehicule.

cdt
-1
Utilisateur anonyme
 
-1 ... fichtre !

Il n'empêche que public static void main se trouve dans la definition de la classe Vehicule

bon courage !
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Il n'y a aucun problème de guillemets ici, toutes celles qui sont ouvertes sont bien fermées.
Quant à ta remarque sur le main dans la classe Vehicule, ce n'est pas non plus source de bug.

Le problème d'amine est très loin des causes que tu évoques !
Donc oui -1, ça évitera à amine de chercher où sont les guillemets qui ne lui manquent pas...
0