Hallo,
fuer die uni muss ich ein programm fertig machen. Hierzu muss ich mich an folgende klassenhierarchie halten.
Einwohner ist die oberklasse, davon sollen erben Koenig, Adel, Bauer. Danach soll die KLasse Leibeigener von Bauer erben. Als naechstes soll ich in die Klasse Einwohner einen konstruktor Einwohner() implementieren der das einkommen uebergeben bekommt mit der variable int einkommen und der sichbarkeit public. Dann soll ein Konstruktor erfolgen der nichts uebergeben bekommt und einen neuen Einwohner erzeugt und diesem ein einkommen von 0 zuweist. In die anderen klassen soll genau das selbe passieren und die konstruktoren sollen das gleiche schema verfolgen. Außerdem soll ich noch 2 get-methoden setzen innerhlab in der Klassen hierarchie einmal getZuVersteuerndesEinkommen() und setZuVersetuerndes einkommen. Dies habe ich wei folgt gemacht:
wenn ich versuche in der setMethode den wert fuer das einkommen anzupassen funktioniert es nicht. Meine ausgabe ist einfach 0.0? Ausserdem bekomme ich eibnen stackOverflow bei der erzeugung eines Einwohner in der klassse Einwohner. Falls ich diesen auskommentiere und bekomme ich den anechsten bei erzuegung in der Klasse Bauer. Fuer jeden rat bin ich sehr dankbar
hier noch meine main methode mit der ich testen will:
fuer die uni muss ich ein programm fertig machen. Hierzu muss ich mich an folgende klassenhierarchie halten.
Einwohner ist die oberklasse, davon sollen erben Koenig, Adel, Bauer. Danach soll die KLasse Leibeigener von Bauer erben. Als naechstes soll ich in die Klasse Einwohner einen konstruktor Einwohner() implementieren der das einkommen uebergeben bekommt mit der variable int einkommen und der sichbarkeit public. Dann soll ein Konstruktor erfolgen der nichts uebergeben bekommt und einen neuen Einwohner erzeugt und diesem ein einkommen von 0 zuweist. In die anderen klassen soll genau das selbe passieren und die konstruktoren sollen das gleiche schema verfolgen. Außerdem soll ich noch 2 get-methoden setzen innerhlab in der Klassen hierarchie einmal getZuVersteuerndesEinkommen() und setZuVersetuerndes einkommen. Dies habe ich wei folgt gemacht:
Java:
public class Einwohner {
public int einkommen;
public double steuer;
public Einwohner(int einkommen){
this.einkommen = einkommen;
}
public Einwohner(){
Einwohner einwohner1 = new Einwohner();
einwohner1.einkommen = 0;
}
public int getZuVersteuerndesEinkommen(){
return einkommen;
}
public double getSteuer(){
return steuer;
}
}
Java:
public class Koenig extends Einwohner {
public Koenig(int einkommen){
this.einkommen = einkommen;
}
public Koenig(){
Koenig koenig1 = new Koenig();
koenig1.einkommen = 0;
}
public void setZuVersteuerndesEinkommen(int einkommen){
this.einkommen = einkommen;
}
public void setSteuer(double steuer){
this.steuer = einkommen * 0.20;
System.out.println("S"+steuer);
}
}
Java:
public class Adel extends Einwohner {
public Adel(int einkommen){
this.einkommen = einkommen;
}
public Adel(){
//Adel adel1 = new Adel();
//adel1.einkommen = 0;
}
public void setZuVersteuerndesEinkommen(int einkommen){
this.einkommen = einkommen;
}
public void setSteuer(int steuer){
einkommen = (int) (einkommen *0.20);
}
}
Java:
public Bauer(int einkommen){
this.einkommen = einkommen;
}
public Bauer(){
Bauer bauer1 = new Bauer();
bauer1.einkommen = 0;
}
public void setZuVersteuerndesEinkommen(int einkommen){
this.einkommen = einkommen;
}
public void setSteuer(int steuer){
einkommen = (int) (einkommen *0.20);
}
}
Java:
public class Leibeigener extends Bauer {
public Leibeigener(int einkommen){
this.einkommen = einkommen;
}
public Leibeigener(){
Leibeigener leibeigener1 = new Leibeigener();
leibeigener1.einkommen = 0;
}
public void setZuVersteuerndesEinkommen(int einkommen){
this.einkommen = einkommen;
}
public void setSteuer(int steuer){
einkommen = (int) (einkommen *0.20);
}
}
hier noch meine main methode mit der ich testen will:
Java:
public class Koenigreich {
public static void main(String[] args) {
steuerbescheid(new Koenig(2));
steuerbescheid(new Adel(20));
steuerbescheid(new Bauer(20));
steuerbescheid(new Leibeigener(20));
}
static void steuerbescheid(Einwohner einwohner) {
System.out.println(einwohner.getClass().getSimpleName() +
": Einkommen " + einwohner.einkommen +
", zu versteuerndes Einkommen " + einwohner.getZuVersteuerndesEinkommen() +
", Steuer " + einwohner.getSteuer());
}
}
Zuletzt bearbeitet von einem Moderator: