Hallo,
habe aus einem Buch als Übung folgende Aufgabe:
(Auszug)
Die ererbte Methode auszahlen soll so überschrieben werden, dass nur dann der auszuzahlende Betrag vom Saldo abgezogen wird, wenn nach dem Abzug das Kreditlimit nicht überschritten wird. Ansonsten soll eine Fehlermeldung in der Konsole ausgegeben werden. Testen Sie die Klasse Girokonto.
(/Auszug)
Ich bin mir nicht sicher ob meine Lösung so richtig ist, da ich ja im else-Teil die Methode die ich überschreiben soll wieder aufrufe.
Das Programm funktioniert so und die Ausgabe ist wie erwartet.
Vielen Dank.
[CODE lang="java" title="Main Klasse"]public class Girokontotest {
public static void main(String[] args) {
Girokonto gk = new Girokonto("0000000001", 10000.0, 1000.0);
gk.auszahlen(11000.0);
System.out.println("Kontostand: " + gk.getKontostand());
gk.einzahlen(11000.0);
gk.auszahlen(11001.0);
System.out.println("Kontostand: "+ gk.getKontostand());
}
}[/CODE]
[CODE lang="java" title="Girokonto extends Konto" highlight="10-17"]public class Girokonto extends Konto {
private double limit;
public Girokonto(String kontonummer, double kontostand, double limit) {
super(kontonummer, kontostand);
this.limit = limit;
}
@Override
public void auszahlen(double betrag) {
if (super.getKontostand() - betrag < 0 - this.limit) {
System.out.println("Fehler: Kreditlimit überschritten!");
} else {
super.auszahlen(betrag);
}
}
public double getLimit() {
return this.limit;
}
public void setLimit(double l) {
this.limit = l;
}
}[/CODE]
[CODE lang="java" title="Konto Klasse"]public class Konto {
private String kontonummer;
private double kontostand;
public Konto(String kontonummer, double kontostand) {
this.kontonummer = kontonummer;
this.kontostand = kontostand;
}
public void einzahlen(double betrag) {
this.kontostand += betrag;
}
public void auszahlen(double betrag) {
this.kontostand -= betrag;
}
public String getKontonummer() {
return this.kontonummer;
}
public double getKontostand() {
return this.kontostand;
}
}[/CODE]
habe aus einem Buch als Übung folgende Aufgabe:
(Auszug)
Die ererbte Methode auszahlen soll so überschrieben werden, dass nur dann der auszuzahlende Betrag vom Saldo abgezogen wird, wenn nach dem Abzug das Kreditlimit nicht überschritten wird. Ansonsten soll eine Fehlermeldung in der Konsole ausgegeben werden. Testen Sie die Klasse Girokonto.
(/Auszug)
Ich bin mir nicht sicher ob meine Lösung so richtig ist, da ich ja im else-Teil die Methode die ich überschreiben soll wieder aufrufe.
Das Programm funktioniert so und die Ausgabe ist wie erwartet.
Vielen Dank.
[CODE lang="java" title="Main Klasse"]public class Girokontotest {
public static void main(String[] args) {
Girokonto gk = new Girokonto("0000000001", 10000.0, 1000.0);
gk.auszahlen(11000.0);
System.out.println("Kontostand: " + gk.getKontostand());
gk.einzahlen(11000.0);
gk.auszahlen(11001.0);
System.out.println("Kontostand: "+ gk.getKontostand());
}
}[/CODE]
[CODE lang="java" title="Girokonto extends Konto" highlight="10-17"]public class Girokonto extends Konto {
private double limit;
public Girokonto(String kontonummer, double kontostand, double limit) {
super(kontonummer, kontostand);
this.limit = limit;
}
@Override
public void auszahlen(double betrag) {
if (super.getKontostand() - betrag < 0 - this.limit) {
System.out.println("Fehler: Kreditlimit überschritten!");
} else {
super.auszahlen(betrag);
}
}
public double getLimit() {
return this.limit;
}
public void setLimit(double l) {
this.limit = l;
}
}[/CODE]
[CODE lang="java" title="Konto Klasse"]public class Konto {
private String kontonummer;
private double kontostand;
public Konto(String kontonummer, double kontostand) {
this.kontonummer = kontonummer;
this.kontostand = kontostand;
}
public void einzahlen(double betrag) {
this.kontostand += betrag;
}
public void auszahlen(double betrag) {
this.kontostand -= betrag;
}
public String getKontonummer() {
return this.kontonummer;
}
public double getKontostand() {
return this.kontostand;
}
}[/CODE]