Problem beim Kompilieren - cannot find symbol - constructor()

schmiddi86

Mitglied
Hallo,

leider bin ich in Java noch Anfänger und komme bei folgender BlueJ Meldung beim Kompilieren einfach nicht weiter.

BlueJ bringt beim Kompilieren der Subklasse die Meldung:

cannot find symbol - constructor Artikel(Kunde, double, ...)



Superklasse:
public Artikel(Kunde kunde, double einkaufspreis, double verkaufspreis, double gewicht, String artikelbezeichnung, String reinheit)
{
this.einkaufspreis = einkaufspreis;
this.verkaufspreis = verkaufspreis;
this.artikelbezeichnung = artikelbezeichnung;
this.reinheit = reinheit;
this.gewicht = gewicht;
this.kunde = kunde;

this.artNr = artNrZaehler;
artNrZaehler++;
}



Subklasse:
public class Uhr extends Artikel
{

public Uhr(Kunde kunde, double einkaufspreis, double verkaufspreis, double gewicht, String artikelbezeichnung, String reinheit)
{
super(kunde, einkaufspreis, verkaufspreis, reinheit, gewicht, artikelbezeichnung);
}

}


Bestimmt hab ich irgendwo was vergessen.
Kann jemand helfen?

Viele Grüße

Christian
 
Sollte
Java:
super(kunde, einkaufspreis, verkaufspreis, reinheit, gewicht, artikelbezeichnung);
nicht eher
Java:
super(kunde, einkaufspreis, verkaufspreis, gewicht, artikelbezeichnung, reinheit);
Sein?
Denke mal du hast gewicht und reinheit vertauscht. Denn deine Klasse Artikel sagt ja, dass ganz am ende der String reinheit angegeben werden muss. Bei deinem super-Aufruf wird sie jedoch an einer Stelle übergeben, an der eig. ein double stehen muss (das Gewicht).
 
ich wusste nicht dass die Reihenfolge identisch sein muss!

Die Reihenfolge der Typen muss unterschiedlich sein. Wenn du bei deinem Beispiel "reinheit"
und "artikelbezeichnung" vertauscht hättest, wäre keine Fehlermeldung aufgetreten weil ja
beides Strings sind. So aber konnte der Compiler feststellen das es keinen Konstruktor mit
der Reihenfolge der Typen ("Signatur") gibt und eine Fehlermeldung ausgeben.
 
Ok, danke!
Jetzt size ich gerade an einer Enumeration, die mir auch einen Fehler auswirft.
Ich bekomme die Meldung <identifier > expected
Das bedeutet doch, dass er irgendwo eine Variable erwartet, die aber nicht findet, oder?

Java:
public enum Reinheit
{
    333("Reinheit 333"),
    555("Reinheit 555"),
    777("Reinheit 777"),
    
    private String reinheit;
    

    Reinheit(String bezeichner)
    {
        this.reinheit = bezeichner;
    }
}


In Zeile 2 wirft er mir den Fehler aus.
 
Vielen Dank für die Antwort

aber selbst wenn ich 333, 555 und 777 in unterschiedliche Bichstaben/Wörter ändere, wirft er mir den selben Fehler raus, dann aber erst in Zeile 5.
 

Zurück
Oben