2016-03-20 3 views
-4

ich ein Mensch Klasse Human.javaIch konnte nicht die Super-Konstruktor machen

Auch habe ich einen Lehrer Klasse

Teacher.java

Aber ich konnte nicht die Super-Konstruktor meine Retired_teacher hinzufügen

public class Retired_teacher extends Teacher{ 

public int retirement_year; 

Retired_teacher(Teacher t, int ry_){ 

    super Teacher(name,surname,age,gender); 
    String na=get_name(); 
    System.out.println("A new teacher " + na + " " + surname + "is constructed"); 
    System.out.println("A teacher is retired"); 
    retirement_year=ry_; 

Super macht Fehler, wie kann ich das beheben

+1

Fügen Sie Ihre Codes hinzu, anstatt Bilder zu posten. – ridvankucuk

Antwort

1

Sie super falsch anrufen, sollten Sie rufen Sie einfach an:

super(name,surname,age,gender); 

Keine Notwendigkeit für die Klassennamen.

Auch in Ihrer Teacher Klasse der Konstruktor Argumente nimmt und hier liefern Sie nur . Beachten Sie, dass dies nicht funktioniert, wenn Sie nicht ein weiteres Argument hinzufügen.

+0

Das hat es nicht behoben –

+2

Das ist 100% korrekt. Du hast nicht gesagt, was dein Fehler ist. ** Bearbeite ** deine Frage mit deinem vollständigen Fehler (attach stack trace) und gib an, was nicht funktioniert. – Idos

+0

Nein nein nein ... Keine Links an irgendetwas senden. State * in deinen eigenen Worten * was funktioniert nicht, was ist der Fehler, was sollte passieren? – Idos

0

Sie haben eine Teacher-Klasse und ihren Konstruktor definiert.

Teacher(String na_,String sur_,int a,String g_,String le_); 

aber Sie tun:

super Teacher(name,surname,age,gender); 

und ein solcher Konstruktor nicht in dieser Klasse definiert wird ...

so müssen Sie entweder den Konstruktor überlasten und erstellen Sie die

oder übergeben Sie die Argumente vollständig.


PS: meiner Meinung nach einem Retired_teacher ein Lehrer ist, aber mit einem boolean Mitglied auf false gesetzt (aktiv oder nicht), kann

eine neue Klasse für nur eine Änderung in den Mitgliedern zu schaffen sein zu viel.

Verwandte Themen