1. Das heißt, jedes Mal, wenn ein neues Objekt erzeugt wird, dann wird "number" automatisch um Eins erhöht?
Jein, number wird auf nextNumber gesetzt, und nextNumber direkt incrementiert.
number ist Instanzvariable, nextNumber Klassenvariable.
2. In der Klasse ChargedAccountImpl gibt es die Methode charge(int amount). Ist amount die Gebühr? Und warum gibt es in der Musterlösung keine Objektvariable charge? Das hätte ich mit reingenommen.
Leider ist nirgendwo beschrieben, was genau #charge machen soll, bzw aufgerufen werden soll. Mit vernünftigem JavaDoc wäre das klarer gewesen...
Wofür hättest du denn die Variable benutzt?
3. Wozu sind die zwei Klassen ChargedLimitedAccountImpl1 und ChargedLimitedAccountImpl2 da? Hätte nicht einfach eine Klasse ChargedLimitedAccountImpl gereicht?
WO sind sie denn da? Vermutlich sind das zwei mögliche Implementationen des Interfaces, man kann logischerweise nicht beide in einer Klasse unterbringen, brauchen tut man aber nur eine.
4. In der Musterlösung steht in der Klasse LimitedAccountImpl die Methode public static boolean check (LimitedAccount account, int amount).
LimitedAccount ist eine Schnittstelle. Ist das erlaubt, dass man als Parametertyp, eine Schnittstelle angibt?
Es ist nicht nur erlaubt, sondern erwünscht, Interfaces und nicht Klassen bei der Deklaration zu benutzen
So klappt die Methode für alle LimitedAccounts, wäre da eine Klasse angegeben, klappt es nur für diese eine Klasse, für alle anderen Implementation, für die es nützlich wäre, klappt es aber nicht.
5. Stimmt meine check- Methode soweit? Ich weiß nicht, ob das limit positiv oder negativ betrachtet wird.
Wenn limit das untere Limit angibt, stimmt deine Methode so.
Wie das gemeint ist, steht sicherlich irgendwo erklärt (und gehört ins JavaDoc)
6. Die Methoden withdraw und transfer werden in der Klasse LimitedAccountImpl überschrieben. Diese Methoden sind aber nicht in der Klasse AccountImpl implementiert. Kommen die Methoden aus dem Interface Account?
Ja, implementiert sind sie auch schon in AbstractAccount.
Warum werden die in LimitedAccountImpl überschrieben?