Ralat Compile Java tidak dapat mencari simbol

Ralat Compile Java tidak dapat mencari simbol

Isu

Saya minta bantuan anda. Saya membuat program kecil di bahagian auto pengurusan java yang terdiri daripada 6 kelas (warisan tunggal):

Piece-sebuah kelas abstrak (superclass);

Dua kelas yang merupakan lanjutan kelas Piece:

  • PieceDeBase;
  • PieceComposite (kelas abstrak);

Dua kelas yang merupakan lanjutan kelas PieceComposite:

  • PieceCompositeEnKit;
  • PieceAssemblee;

Kelas-MainPiece yang merupakan aplikasi bagi semua 5 kelas ini.

Kelas 6 berada dalam direktori yang sama.

Apabila saya menyusun Piece kelas, begitu baik, saya tidak ada kesilapan. Oleh kontra, apabila saya menyusun subclass, saya mendapat ralat seperti:

PieceDeBase.java: 7: tidak dapat mencari simbol simbol: class public class Piece Piece PieceDeBase extends PieceDeBase.java ^: 37: tidak dapat mencari symbol simbol: variable super location: class {return Prog.Pieces.PieceDeBase super.toString () + "- -Basic";}

Ini adalah satu-satunya kesilapan saya untuk semua kelas saya.

Berikut adalah Piece kelas saya:

Kod: pakej Prog.Pieces; import java.util. *; import java.io. *; public abstract class Piece {/ / Atribut --------------------- --------------------- ----------------------------- ----------- dilindungi nama rentetan; pelindung String dilindungiDeBase / / Constructors ---------------------------- ---------------- ---------------------------------- Piece () {name = "unknown"; referenceDeBase = "000000";} Piece (String n, String r) {name = n; referenceDeBase = r;} / / Accessors ------------ ------------------------------ -------------------- ------------------- getNom public String () {return name;} public void setNom (String n) {name = n;} public string getReferenceDeBase () {return referenceDeBase;} public void setReferenceDeBase (String r) {r = referenceDeBase;} / -------------------- ------------------------------ - String public toString () {return name + "" + getReferenceDeBase ();} harga apungan awam abstrak (); float awam abure dureeGarantie (); abure public float dureeFabrication (); Awalan abstrak awam (); public String referenceDeBase () {return referenceDeBase;} display void public () {System.out.println ("Name:" + getNom () + "\ n" + "Reference:" + referenceDeBase () + "\ n" + "+ (+)" + "Harga () +" euro (s) \ n "+" Jaminan: "+ dureeGarantie () +" month \ n " );} / / Bahagian yang dilindungi - ------------------------------------------ -------- ------------------------ afficheCommeComposites protected String (int offset) {String Decale = "" for (int i = 0; i

Dan inilah PieceDeBase kelas saya (hanya untuk menamakan beberapa daripada anda):

Pakej Prog.Pieces; import java.util. *; import java.io. * kelas awam meluaskan PieceDeBase Piece {/ / Atribut ---------------------- ------------------ ------------------------- harga apungan swasta; duree float swastaGarantie; duree float peribadiFabrication / / Constructors ------------------------------------------ - ----------------- PieceDeBase () {price = 0; dureeGarantie = 0; dureeFabrication = 0;} PieceDeBase (String n, String r, float p, float dg, float df) {super (n, r); harga = p; dureeGarantie = dg; dureeFabrication = df;} / / Accessors ----------------------- ------------------- ---------------------- float awam getPrix () {return price; } public void setPrix (float p) {price = p;} float public getDureeGarantie () {return dureeGarantie;} public void setDureeGarantie (float dg) = dg {dureeGarantie;} float public getDureeFabrication (float df) {df = dureeFabrication;} / / Kaedah lain ------------------------------------ - String public toString () {return super.toString () + "- base";} price float public () {return harga} float float publicGarantie () {return dureeGarantie;} duree float publicFabrication () {return dureeFabrication;} prefix String public () {return "00" + super.reference ();}}

Adakah ini kesilapan dalam kelas saya atau kod saya?

Saya benar-benar faham apa-apa, saya fikir kod saya baru sahaja.

Jika anda dapat membantu saya, saya akan sangat berterima kasih.

Salam.

Penyelesaian

Oleh itu, tiada kesilapan dalam kod java saya tetapi arahan melalui terminal.

Jadi bagi mereka yang mempunyai kesilapan kompilasi yang sama dalam kes warisan mudah, anda mesti membina kelas super dan subclass anda pada masa yang sama dan sekali sahaja:

 javac SuperClasse.java SousClasse1.java SousClasse2.java 

Dalam kes saya, ia adalah:

 javac Piece.java PieceDeBase.java PieceComposite.java PieceCompositeEnKit.java PieceAssemblee.java MainPiece.java 

Itu, bagi saya ia benar-benar baik dan semuanya berjalan dengan sempurna.

Catatan

Diselesaikan oleh mickeynad

Artikel Sebelumnya Artikel Seterusnya

Tip-Tip Utama