Bonjour à tous,
J'en appelle à votre aide. J'ai fait un petit logiciel en java de gestion des pièces automobiles qui est constitué de 6 classes (héritage simple):
-une classe abstraite Piece (classe mère);
-Deux classes qui sont une extension de la classe Piece:
*PieceDeBase;
*PieceComposite (classe abstraite);
-Deux classes qui sont une extension de la classe PieceComposite:
*PieceCompositeEnKit;
*PieceAssemblee;
-Une classe MainPiece qui est une application de toutes ces 5 classes.
Les 6 classes sont dans le meme répertoire Pieces.
Lorsque je compile la super classe Piece, tout va bien, j'ai aucune erreur. Par contre, lorsque je compile les sous classes, j'ai une erreur du genre:
PieceDeBase.java:7: cannot find symbol
symbol: class Piece
public class PieceDeBase extends Piece
^
PieceDeBase.java:37: cannot find symbol
symbol : variable super
location: class Prog.Pieces.PieceDeBase
{return super.toString()+"-de base-";}
Ce sont les seules erreurs que j'ai pour toutes mes classes.
Voici ma classe Piece:
package Prog.Pieces;
import java.util.*;
import java.io.*;
public abstract class Piece
{
//Attributs----------------------------------------------------------------------------------
protected String nom;
protected String referenceDeBase;
//Constructeurs------------------------------------------------------------------------------
Piece()
{nom="inconnu"; referenceDeBase="000000";}
Piece(String n, String r)
{nom=n; referenceDeBase=r;}
//Accesseurs---------------------------------------------------------------------------------
public String getNom() {return nom;}
public void setNom(String n) {nom=n;}
public String getReferenceDeBase() {return referenceDeBase;}
public void setReferenceDeBase(String r) {referenceDeBase=r;}
//Autres methodes----------------------------------------------------------------------------
public String toString()
{return nom+" "+getReferenceDeBase();}
abstract public float prix();
abstract public float dureeGarantie();
abstract public float dureeFabrication();
abstract public String prefixe();
public String referenceDeBase() {return referenceDeBase;}
public void affiche()
{
System.out.println("Nom : "+getNom()+"\n"+
"Reference : "+referenceDeBase()+"\n"+
"Prix : "+prix()+"euro(s)\n"+
"Garantie : "+dureeGarantie()+"mois\n"+
"Duree de fabrication : "+dureeFabrication()+"jour(s)\n" );
}
//Partie protegee----------------------------------------------------------------------------
protected String afficheCommeComposants(int decalage)
{
String Decale="";
for (int i=0; i<decalage; i++)
Decale +=" ";
return Decale+nom+" - "+referenceDeBase()+"\n";
}
}
Et voici ma classe PieceDeBase (pour ne vous citer que celles la):
package Prog.Pieces;
import java.util.*;
import java.io.*;
public class PieceDeBase extends Piece
{
//Attributs-----------------------------------------------------------------
private float prix;
private float dureeGarantie;
private float dureeFabrication;
//Constructeurs-------------------------------------------------------------
PieceDeBase()
{prix=0; dureeGarantie=0; dureeFabrication=0;}
PieceDeBase(String n, String r, float p, float dg, float df)
{super(n,r); prix=p; dureeGarantie=dg; dureeFabrication=df;}
//Accesseurs----------------------------------------------------------------
public float getPrix() {return prix;}
public void setPrix(float p) {prix=p;}
public float getDureeGarantie() {return dureeGarantie;}
public void setDureeGarantie(float dg) {dureeGarantie=dg;}
public float getDureeFabrication() {return dureeFabrication;}
public void setDureeFabrication(float df) {dureeFabrication=df;}
//Autres methodes-----------------------------------------------------------
public String toString()
{return super.toString()+"-de base-";}
public float prix() {return prix;}
public float dureeGarantie() {return dureeGarantie;}
public float dureeFabrication() {return dureeFabrication;}
public String prefixe() {return "00"+super.reference();}
}
Est-ce une erreur de mon classpath ou de mon code?
Je comprends vraiment rien, mon code me semblait juste pourtant.
Si vous pouviez m'aider, je vous en serais très reconnaissante.
Cordialement.