Java, programmieren

Hallo, ich habe Probleme bei folgender Aufgabe. Ich hoffe ihr könnt mir auf die Sprünge helfen:

Schreiben Sie eine Klasse Student, die die Klasse Mensch beerbt.
Die Klasse Student enthält die zusätzliche Eigenschaft Matrikelnummer vom
Datentyp String, set- und get-Methoden für dieses Attribut und eine Methode
getTyp(), die einen String „Student“ zurückgibt.
Hinweis: Achten Sie auf die Datenkapselung für das Attribut
Matrikelnummer!
Der Konstruktor der Klasse Student initialisiert alle Attribute (auch die der
Klasse Mensch) mit zu übergebenden Werten.

Die Klasse Mensch war schon vorgegeben und sieht folgendermaßen aus:

package vererbung;

public class Mensch {

private int alter;
private char geschlecht;
private String name;

public Mensch(int alter, char geschlecht, String name) {
setAlter(alter);
setGeschlecht(geschlecht);
setName(name);
}

public int getAlter() {
return alter;
}

void setAlter(int alter) {
this.alter = alter;
}

public char getGeschlecht() {
return geschlecht;
}

void setGeschlecht(char geschlecht) {
this.geschlecht = geschlecht;
}

public String getName() {
return name;
}

void setName(String name) {
this.name = name;
}

public String getTyp() {
String typ = „Mensch“;
return typ;
}
}

Die Klasse Student habe ich angefangen zu schreiben, bekomme jedoch Fehlermeldungen:

package vererbung;

public class Student extends Mensch {

String Matrikelnummer;
public Student (String Matrikelnummer, int alter, char geschlecht, String name){
this.name = „Jan“;
this.alter = 18;
this.Matrikelnummer = „02030401“;
this.geschlecht = ‚männlich‘;

}

void setMatrikelnummer(String Matrikelnummer) {
this.Matrikelnummer = Matrikelnummer;
}

String getMatrikelnummer() {
return Matrikelnummer;
}

String getTyp(String Student) {
return Student;
}
}

Oben beim Konstruktor steht folgende Fehlermeldung ‚Cannot find symbol‘ symbol:constructor Mensch()
und dann bei jeder this Anweisung bekomme ich auch Fehlermeldungen.

Hi,
erstens, wäre es sehr nett wenn du den Artikeln aussagekräftige Titel geben würdest.
Nun zu deinem Problem, ein Fehler der mir auffällt ist, dass du einer char einen String zuweist, eine Char kann nur ein Zeichen enthalten.
Lg der einzigware

Hi, danke für die schnelle Antwort.
Den Fehler habe ich bereits behoben aber oben im Konstruktor habe ich immer noch einen.
lg

Hm, mir muss wirklich langweilig sein.

Du willst eine Klasse erweitern, die einen öffentlichen Konstruktor hat. Du überschreibst diesen Konstruktor nicht.

Und was in der Aufgabe als „Datenkapselung“ bezeichnet wird, hast Du wohl auch nicht beachtet. wahrscheinlich ist damit der default access gemeint, den Du für Dein Feld „matrikelnummer“ vorgesehen hast. Wie auch immer, hier meine kleinen Anpassungen.

package vererbung;

public class Student extends Mensch {

 private String matrikelnummer;

 public Student(String matrikelnummer, int alter, char geschlecht, String name) {
 super(alter, geschlecht, name);
 this.matrikelnummer = matrikelnummer;
 }

 void setMatrikelnummer(String matrikelnummer) {
 this.matrikelnummer = matrikelnummer;
 }

 String getMatrikelnummer() {
 return matrikelnummer;
 }

 String getTyp(String Student) {
 return Student;
 }
}

Hi, danke für deine Hilfe.
aber wieso kann man das public vor den get Methoden einfach weglassen was aber in der Klasse Mensch besteht.
Und muss man immer die Eigenschaften die die Sub-Klasse mit der Super-Klasse gemeinsam hat in der Sub-Klasse in den super Konstruktor schreiben?

lg

Da andere Leute diese Sachen schon zigtausend Mal erklärt und besser erklärt haben als ich, verweise ich auf die offizielle Dokumentation und die Insel.

Lies erst:

http://download.oracle.com/javase/tutorial/java/java…

Lies dann:

http://openbook.galileocomputing.de/javainsel8/javai…

http://openbook.galileocomputing.de/javainsel8/javai…

http://openbook.galileocomputing.de/javainsel8/javai…