Hallo zusammen
Ich lerne grad im Selbststudium programmieren mit dem Buch "Programmieren lernen mit Java" von Hans Peter Habelitz und bin in den Übungsaufgaben zu Kapitel 6 auf folgendes Problem gestoßen: Die Unterklasse "Girokonto" erbt die Methode "auszahlen" von der Hauptklasse "Konto". Die Klasse Girokonto wird um das Attribut limit ergänzt, welches verhindert, dass zu viel Geld auf einmal abgehoben bzw ausgezahlt wird. Deshalb muss auch die Methode "auszahlen" überarbeitet werden.
Nun ersteinmal der Code damit ihr mir besser folgen könnt:
Hauptklasse Konto:
Unterklasse Girokonto:
Jetzt zu meinem Problem: wenn ich in einem Programm (Girokontotest) ein Objekt der Klasse Girokonto erstelle und mit der auszahl-Methode versuche einen Betrag auszugeben der das Limit überschreitet, so wird wie von mir gewollt der Fehler in der Konsole ausgegeben. Zustätzlich dazu aber auch der Kontostand, welcher nicht in der Methode der Unterklasse enthalten ist.
Ist das Überschreiben also Schlussendlich ein ergänzen? Oder habe ich einen anderen Fehler eingebaut?
Vielen Dank schon einmal im Voraus
PS: Ist der Super-Konstruktor hier richtig verwendet?
Ich lerne grad im Selbststudium programmieren mit dem Buch "Programmieren lernen mit Java" von Hans Peter Habelitz und bin in den Übungsaufgaben zu Kapitel 6 auf folgendes Problem gestoßen: Die Unterklasse "Girokonto" erbt die Methode "auszahlen" von der Hauptklasse "Konto". Die Klasse Girokonto wird um das Attribut limit ergänzt, welches verhindert, dass zu viel Geld auf einmal abgehoben bzw ausgezahlt wird. Deshalb muss auch die Methode "auszahlen" überarbeitet werden.
Nun ersteinmal der Code damit ihr mir besser folgen könnt:
Hauptklasse Konto:
Java:
public class Konto {
protected String kontoNummer;
protected double kontoStand;
Konto(String kontoNummer, double kontoStand){
this.kontoNummer = kontoNummer;
this.kontoStand = kontoStand;
}
}
public void auszahlen(double auszahlBetrag) {
kontoStand -= auszahlBetrag;
}
}
Unterklasse Girokonto:
Java:
public class GiroKonto extends Konto {
double limit;
GiroKonto(String kontoNummer, double kontoStand, double limit){
super(kontoNummer, kontoStand);
this.limit = limit;
}
public void auszahlen(double auszahlBetrag) {
if(auszahlBetrag > limit) {
System.out.println("Fehler: Kreditlimit überschritten!");
}
else {
super.auszahlen(auszahlBetrag);
}
}
}
Ist das Überschreiben also Schlussendlich ein ergänzen? Oder habe ich einen anderen Fehler eingebaut?
Vielen Dank schon einmal im Voraus
PS: Ist der Super-Konstruktor hier richtig verwendet?
Zuletzt bearbeitet von einem Moderator: