Ich versuche, das Erweitern von inneren Klassen in Java zu verstehen. Ich habe mich umgeschaut, aber nichts gefunden, was meine Frage wirklich beantwortet. Also, los geht's...
Ich habe...
public class Pie{
protected Slice[] slices;
// Konstruktor für Pie
public Pie(int n){
sliceGenerator(n)
}
private void sliceGenerator(int n){
slices = new Slice[n];
final float sweepAngle = 360.0f/(float)n;
float startAngle = 0;
for (int i=0;i
``
Dann erweitere ich dies...
public class ApplePie extends Pie{
protected Slice[] slices;
// Apple Pie Konstruktor
public ApplePie(int n){
super(n);
}
// Innere Klasse...
public class Slice extends Pie.Slice{
public Slice(float startAngle){
super(startAngle);
//setze einige **zusätzliche** private Felder basierend auf startAngle **spezifisch für den Apfelkuchen** Apfeligkeit oder so
}
@Override
public String toString(){
return **String basierend auf spezifischen privaten Feldern des Apfelkuchens**
}
}
}
Jetzt, wenn ich einen Apfelkuchen erstelle und seine toString-Methode aufrufe, wie folgt...
ApplePie ap = new ApplePie(8);
System.out.println(ap.toString());
Bekomme ich keine Informationen über die Apfelkuchenscheiben, sondern Informationen über die Kuchenscheiben. Es ignoriert meine toString
-Überschreibung oder ignoriert höchstwahrscheinlich meine Apfelkuchen-Slice
. Wie kann ich es so anordnen, dass Apfelkuchenscheiben auf ApplePie
verweisen?
Jede Hilfe ist sehr geschätzt! Entschuldigung für die Kuchenreferenzen - das ist die tatsächliche Klasse, mit der ich arbeite...
``