Klassen und Vererbung

dmv

Mitglied
Hallo 🙂 Ich habe eine Frage, bezüglich meines Codes. Ich habe 3 Klassen, Tiertest, Tier und Wal.

[CODE lang="java" title="Das hier ist der Tiertest Teil"]public class Tiertest {

public static void main(String[] args) {
Tier t1 = new Tier();
t1.setAlter(5);
t1.setGroeße(2.3);
System.out.println(t1);
Tier t2 = new Tier(5.2, 1);
System.out.println(t2);
System.out.println(Tier.liesBestand());


Wal w1 = new Wal(8.6, 4, false);
System.out.println(w1);
Wal w2 = new Wal (18.6, 12, true);
System.out.println(w2);
System.out.println(Tier.liesBestand());


}}
[/CODE]

[CODE lang="java" title="Weiter gehts mit Tier"]public class Tier {

protected int alter;
protected double groesse;
protected static int bestand = 0;

public Tier() {
bestand ++;
}
public Tier(double groesse, int alter) {
this.alter = alter;
this.groesse = groesse;
bestand ++;}


public void setAlter (int alter) {
this.alter = alter;
}
public void setGroeße (double groesse) {
this.groesse = groesse;
}
public String toString() {
return "Größe: " + groesse + " Alter: " + alter;
}
public static int liesBestand() {
return bestand;
}}

[/CODE]

[CODE lang="java" title="Und die Klasse Wal"]public class Wal extends Tier {

private boolean zahnwal;

public void setGroesse (double groesse) {
if (groesse <= 18) {
this.groesse = groesse;
} else {
groesse = 18;
}
}
public Wal (double groesse, int alter, boolean Zahnwal) {
super (groesse, alter);
if (groesse <= 18) {
bestand ++;
}
}
public String toString() {
return super.toString() + " Zahnwal " + zahnwal;
}
}
[/CODE]

Jetzt habe ich ein Problem bei der Ausgabe, und zwar sollte die Ausgabe:

Größe: 2.3 Alter: 5
Größe: 5.2 Alter: 1
2
Größe: 8.6 Alter: 4 Zahnwal false
Größe: 0.0 Alter: 12 Zahnwal true
4


lauten, jedoch lautet sie:

Größe: 2.3 Alter: 5
Größe: 5.2 Alter: 1
2
Größe: 8.6 Alter: 4 Zahnwal false
Größe: 18.6 Alter: 12 Zahnwal false
5


Hat jemand eine Ahnung, wo der Fehler liegt?
 
Wal leitet von Tier ab.
In Tier erhöhst du den Bestand, in Wal zusätzlich nochmal, wenn eine bestimmte Bedingung gegeben ist.

Außerdem erzeugst du nirgends einen Wal mit 0.0. Hier düfte wohl die Musterlösung falsch sein.
 

Neue Themen


Zurück
Oben